我需要一種方法來檢測用戶手動解除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