iOS键盘通知iOS键盘通知
新风作浪iOS系统键盘通知
UIKeyboardWillShowNotification // 键盘将要出现 UIKeyboardDidShowNotification // 键盘已经出现 UIKeyboardWillHideNotification // 键盘将要消失 UIKeyboardDidHideNotification // 键盘已经消失 UIKeyboardWillChangeFrameNotification // 键盘frame将要修改 UIKeyboardDidChangeFrameNotification // 键盘frame已经修改
|
键盘通知事件里获取userInfo key
UIKeyboardFrameBeginUserInfoKey // 开始时的键盘位置 UIKeyboardFrameEndUserInfoKey // 结束时的键盘位置 UIKeyboardAnimationCurveUserInfoKey // 动画类型 UIKeyboardAnimationDurationUserInfoKey // 动画持续事件 UIKeyboardIsLocalUserInfoKey // 是否为本地用户键盘 UIKeyboardCenterBeginUserInfoKey // 开始时的键盘中心 UIKeyboardCenterEndUserInfoKey // 结束时的键盘中心 UIKeyboardBoundsUserInfoKey // 键盘边界
|
关于iPad浮动键盘
在iPad上键盘可以拆分和浮动,在拆分和浮动情况下 UIKeyboardWillShowNotification
、 UIKeyboardWillHideNotification
两个通知并会触发,需要通过监听UIKeyboardWillChangeFrameNotification
或者UIKeyboardDidChangeFrameNotification
获取键盘的一些变化。
[[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardDidChangeFrameNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * notification) { CGRect keyboardEndFrame = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; CGRect screenRect = [[UIScreen mainScreen] bounds]; if (CGRectIntersectsRect(keyboardEndFrame, screenRect)) { // 键盘显示 } else { // 键盘隐藏 } }];
|
2020.3.11 更新
如果iPad上使用了悬浮键盘,当键盘消失的时候,键盘的x,y,size都是0,需要特殊处理。
在 iPad 上拆分和移动键盘: https://support.apple.com/zh-cn/HT207521
在 iPad 上使用浮动式键盘: https://support.apple.com/zh-cn/HT210758