Ios5 iOS 5中未为未固定键盘调用UIKeyboardWillShowNotification

Ios5 iOS 5中未为未固定键盘调用UIKeyboardWillShowNotification,ios5,uikeyboard,Ios5,Uikeyboard,我发现UIKeyboardWillShowNotification和UIKeyboardDidShowNotification在ios5中出现未锁定/拆分键盘时不会生成。例如,点击文本字段以显示键盘(生成通知),松开键盘,点击文本字段以关闭键盘,再次点击文本字段以显示松开的键盘(未生成通知) 无论键盘是否停靠,是否有任何方法可以检测键盘何时出现?您需要观察UIKeyboardWillChangeFrameNotification和UIKeyboardDidChangeFrameNotificat

我发现
UIKeyboardWillShowNotification
UIKeyboardDidShowNotification
ios5
中出现未锁定/拆分键盘时不会生成。例如,点击文本字段以显示键盘(生成通知),松开键盘,点击文本字段以关闭键盘,再次点击文本字段以显示松开的键盘(未生成通知)


无论键盘是否停靠,是否有任何方法可以检测键盘何时出现?

您需要观察
UIKeyboardWillChangeFrameNotification
UIKeyboardDidChangeFrameNotification
。获取它们后,您可以查看
UIKeyboardFrameEndUserInfoKey
的值(如果存在,则在拖动键盘时并不总是如此),并查看该矩形是否与窗口相交,以查看键盘现在是在屏幕上还是在屏幕外。

如果键盘显示为未锁定/拆分,则无需检测它。松开/分离键盘的全部意义在于,如果有障碍,用户可以自由移动键盘

你找到解决办法了吗?我也面临着同样的问题,当使用iOS 5时,UIKeyboardDidShowNotification不会发送,并且键盘未锁定。如果我找到解决方案,我会将其发布在这里。这里类似的问题:是的,当键盘未锁定时,不会发布这些通知,因为用户可以重新定位键盘,通常情况下,您不需要处理键盘后面的视图,而只需要处理覆盖屏幕底部的固定键盘,并且用户无法访问表格视图或按钮中的单元格,等等……显然,我有理由想要发现这一事件,否则我就不会问这个问题。是的,我只是想改变苹果的想法。他们所做的是保留关于键盘固定位置的“显示”和“隐藏”通知的行为。因此,您完全可以使用旧代码,因为如果键盘松开,用户可以移动它。或者,您可以切换到
UIKeyboardDidChangeFrameNotification
(或者只将其添加到通知库中)。