iOS:iOS 8上的UIKeyboardWillShowNotification和UIKeyboardDidChangeFrameNotification之间的区别?

时间:2015-01-14 01:51:59

标签: ios

在iOS 8上,我发现每次更改键盘的输入语言或点击文本字段以显示键盘时,都会收到UIKeyboardWillShowNotificationUIKeyboardDidChangeFrameNotification

那么这两个通知和之间的区别是什么 在这两个通知的回调中做什么是正确的?

2 个答案:

答案 0 :(得分:0)

According to the docsUIKeyboardDidChangeFrameNotification“在键盘框架发生更改后立即发布”,因此应在UIKeyboardWillShowNotificationUIKeyboardWillHideNotification之后发布。

是否应该使用UIKeyboardDidChangeFrameNotificationUIKeyboardWillShowNotification取决于您要完成的操作...如果您需要通知才能在键盘出现时触发操作,请使用UIKeyboardWillShowNotification ;否则,如果您需要通知以在键盘出现时触发操作并消失,请使用UIKeyboardDidChangeFrameNotification

答案 1 :(得分:0)

UIKeyboardDidChangeFrameNotification针对所有更改发布,而不仅仅是显示和隐藏。例如,如果键盘改变了大小 - 这可能由于多种原因而发生,例如切换到不同的可安装键盘,键盘决定提供建议,或将iPad键盘拆分为2)。

另请注意,每次拨打UIKeyboardDidChangeFrameNotification时,您都可以接听UIKeyboardWillChangeFrameNotification次来电。被告知发生了 更改,如果该更改足够复杂,您可能会被告知实际发生的多个更改。