keyboardWillShow调用两次
我有一个键盘通知,如keyboardWillShow
和keyboardWillHide
的视图
所有的代码处理与我使用的通知是从苹果的示例代码“KeyboardAccessory”
当我第一次进入这个视图时,一切正常。
但是当我从子视图中回到这个视图时,每次我点击一个button说:
[myTextField becomeFirstResponder];
keyboardWillShow
和keyboardWillHide
方法将每次调用两次。
这真是令人困惑,
任何人都可以帮助我吗?
万分感激!
你可能想要发布你的代码。
如果您的方法被调用了两次,很可能是多次注册键盘通知,并且在您认为自己的时候没有移除观察者。
在viewWillAppear中添加你的观察者:并在viewWillDisappear中移除它:看看会发生什么。
它在iOS 8上被调用两次,当一个自定义的键盘,如SwiftKey正在显示。
在第一次调用时,它可能准备显示,所以CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
将有一个0的keybaord高度 。
第二次调用将具有正确的键盘高度,因此如果您需要调整内容插入,您可以在计算您的插入之前检查返回键盘的高度是否大于0。
而且,每当用户改变键盘时都会被调用。
对我来说,改变inputAccessoryView
会触发keyboardWillShow
另一个调用,因为input附件视图的高度影响整个键盘的高度。