过滤坏键盘会显示通知

时间:2016-04-07 13:58:42

标签: ios objective-c notifications

所以我有一个奇怪的问题。当用户继续使用我的应用程序中的新屏幕而不关闭键盘时,然后返回上一个屏幕,锁定他们的手机然后将其解锁,我会收到keyboardWillShow通知。

当他们返回原始屏幕时,我没有收到keyboardWillShow通知,当他们继续进入新屏幕时,我会收到keyboardDidHide通知,表示系统知道键盘是隐藏的。如果他们手动关闭键盘然后按照上述步骤操作,那么当我解锁手机时,我无法获得keyboardWillShowNotification

主要问题是我隐藏了didHide通知中的工具栏,并在willShow通知中取消隐藏它。因此,当我重新打开屏幕并获得willShow通知时,工具栏显示在屏幕底部,没有键盘。我尝试在endEditing textField上调用viewWillDissappear就像我在回调中那样在工具栏上点击完成,但这仍然会导致它显示。

那么,有没有办法过滤掉keyboardWillShowNotifications,或者有什么根本原因导致我在原始步骤后锁定并解锁手机时获得keyboardWillShowNotification的原因?

编辑:即使屏幕上没有可见的键盘,我也会收到keyboardDidShow的来电。

编辑2:使用通知中提供的userInfo字典,我发现了一些有趣的东西:

当我收到keyboardDidShow通知并且键盘正在显示时,它的框架为(0,308; 320,260)作为其结束帧。当它实际上没有显示键盘时,它有一个(0,524,320,44)的框架,它看起来与工具栏的框架相同。我可以使用这些框架来区分好的和坏的通知。

0 个答案:

没有答案