keyboardWillShow调用两次

我有一个键盘通知,如keyboardWillShowkeyboardWillHide的视图

所有的代码处理与我使用的通知是从苹果的示例代码“KeyboardAccessory”

当我第一次进入这个视图时,一切正常。

但是当我从子视图中回到这个视图时,每次我点击一个button说:

 [myTextField becomeFirstResponder]; 

keyboardWillShowkeyboardWillHide方法将每次调用两次。

这真是令人困惑,

任何人都可以帮助我吗?

万分感激!

你可能想要发布你的代码。

如果您的方法被调用了两次,很可能是多次注册键盘通知,并且在您认为自己的时候没有移除观察者。

在viewWillAppear中添加你的观察者:并在viewWillDisappear中移除它:看看会发生什么。

它在iOS 8上被调用两次,当一个自定义的键盘,如SwiftKey正在显示。

在第一次调用时,它可能准备显示,所以CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 将有一个0keybaord高度

第二次调用将具有正确的键盘高度,因此如果您需要调整内容插入,您可以在计算您的插入之前检查返回键盘的高度是否大于0。

而且,每当用户改变键盘时都会被调用。

对我来说,改变inputAccessoryView会触发keyboardWillShow另一个调用,因为input附件视图的高度影响整个键盘的高度。