我需要一种方法来检测用户手动解除iOS键盘使用键盘上的“键盘”按钮时的情况。我试图使用UIKeyboardDidHideNotification
,但很快发现,当用户拆分键盘时,该事件也会被触发,并将其留在屏幕上。
有没有办法确定键盘确实隐藏?有没有办法知道iOS键盘真的被隐藏(被用户解雇)?
2
A
回答
1
要获得解决办法,我只好稍微修改我原来的执行:我把它换成分配nil
到inputView
我的主视图的成员与创建和销毁自定义隐形UIView<UIKeyInput>
视图相应地显示和隐藏键盘。这使我可以覆盖此视图的resignFirstResponder
方法,它是总是调用键盘辞职 - 无论是在正常状态还是在拆分状态,当用户使用特殊按钮解除键盘锁定或当我以编程方式删除键盘时。
0
我相信UIKeyboardDidHideNotification
只有当键盘真正消失时才会发送。来自Apple docs:
解除键盘后立即发布。
但是,你也可以看看,如果你的任何输入是当前的第一响应者:
BOOL keyboardUp = NO;
for (UIView *view in self.textInputs)
{
if (view.isFirstResponder)
{
keyboardUp = YES;
break;
}
}
相关问题
- 1. iOS键盘不被解雇
- 2. 键盘在UITextField上没有被解雇
- 3. 键盘没有被解雇,即使我试图解雇Android
- 4. UITextField键盘没有解雇
- 5. 有没有办法区分哪个UIPopOver被解雇?
- 6. Dialog没有被解雇
- 7. HTTP GET没有被解雇
- 8. AngularJS'$ onStateChangeSucces'没有被解雇
- 9. 事件没有被解雇
- 10. UIAlertController没有被解雇
- 11. AlertDialog没有被解雇。
- 12. LinearLayoutManager prepareForDrop没有被解雇
- 13. 事件没有被解雇
- 14. BaseAdapter onLongClick没有被解雇
- 15. viewWillAppear没有被解雇
- 16. ImageButton OnClickListener没有被解雇
- 17. process.existed()没有被解雇
- 18. IBAction没有被解雇
- 19. MFMailComposeViewController没有被解雇
- 20. Redux Action没有被解雇
- 21. MouseLeftButtonDown没有被解雇
- 22. Esc键盘事件没有在winforms中被解雇
- 23. 键盘没有隐藏在ios中
- 24. 有没有办法隐藏Vaadin通知?
- 25. 为什么没有被解雇的警报不被解雇?
- 26. 有没有办法知道异常是否被禁用?
- 27. 有没有什么办法在Android 4.0.4中隐藏键盘?
- 28. 知道SKStoreReviewController被解雇的时间
- 29. 有没有办法检测HTML元素何时被隐藏?
- 30. 防止软键盘被解雇
当在iPad上分离键盘时'UIKeyboardDidHideNotification'也被触发,尽管文档没有提及这一点。 –
并且万一键盘已经分裂,当键盘被解散时,永远不会触发'UIKeyboardDidHideNotification'。 – leo
对于键盘交互,我使用自定义的'UIView'实现总是第一响应者的'UIKeyInput'协议。为了显示和隐藏键盘,我相应地用'nil'或自定义不可见视图修改'inputView'成员。 – leo