所以我有一個自我創建的頂級欄控制器正在我的其他控制器視圖中實現。我在這個頂部欄上有一個文本框。我想知道如果用戶在鍵盤外單擊任何東西,最好的辦法是讓鍵盤解散。我確實有一個輕擊手勢識別器,執行方法dismisskeyboard。但是,這隻有在用戶點擊鍵盤外的頂部欄時纔有效。有沒有辦法設置它,所以如果用戶點擊屏幕上的任何東西,那麼這將關閉鍵盤?關閉鍵盤
Q
關閉鍵盤
1
A
回答
1
我會描述的方法是黑客,但仍然有效。
創建透明
UIButton
與view
的幀,象下面這樣:UIButton* overlay = [UIButton buttonWithType:UIButtonTypeCustom]; overlay.frame = self.view.bounds; overlay.backgroundColor = [UIColor clearColor]; [overlay addTarget:self action:@selector(hideOverlay:) forControlEvents:UIControlEventTouchDown]; [self.view.subviews[0] insertSubview:overlay belowSubview:self.textField];
創建方法
hideOverlay
以關閉該鍵盤並隱藏透明:-(void)hideOverlay:(id)sender { UIView* overlay = sender; [overlay removeFromSuperview]; [self.textField resignFirstResponder]; }
您應該理想地稱爲第一塊代碼textFieldDidBeginEditing:
UITextFieldDelegate
的協議方法,你應該相應地註冊你的通話類。
希望它有幫助。
+0
嘿,感謝您的幫助。我面臨的問題是,我需要現在讓我的頂級控制器的框架成爲整個屏幕。但是當我這樣做時,它使得父母控制器按鈕不起作用,因爲他們現在在頂部欄的視圖後面(儘管它們仍然可見)。有沒有辦法解決這個問題? – user3007080
1
您可能會嘗試給文本字段一個透明的inputAccessoryView,其大小設置爲填充屏幕的其餘部分,以捕獲點擊並消除鍵盤。
相關問題
- 1. 關閉鍵盤
- 2. MFMessageComposeViewController關閉鍵盤
- 3. 關閉iPad鍵盤
- 4. 關閉UITextField鍵盤?
- 5. Android關閉鍵盤
- 6. 關閉iphone鍵盤
- 7. UIKeyboardTypeNumberPad關閉鍵盤
- 8. MonoTouch.Dialog:關閉鍵盤
- 9. 關閉鍵盤數字鍵盤
- 10. 使用鍵盤關閉JFrame
- 11. 如何關閉鍵盤?
- 12. ResignFirstResponder不關閉鍵盤(iPhone)
- 13. 如何關閉iOS鍵盤?
- 14. applicationWillResignActive關閉鍵盤iPhone
- 15. 關閉IPAD上的鍵盤
- 16. Android鍵盤不關閉
- 17. 關閉UIViewController中的鍵盤
- 18. 關閉鍵盤 - 的OBJç
- 19. 關閉鍵盤不工作
- 20. trigger.io - 關閉軟鍵盤?
- 21. MonoTouch關閉鍵盤(各種)
- 22. 關閉UITextField中的鍵盤
- 23. 跳板關閉鍵盤
- 24. Objective-c EKEventEditViewController關閉鍵盤
- 25. 關閉textview的鍵盤
- 26. Android阻止鍵盤關閉
- 27. windows 7 phone - 關閉鍵盤
- 28. Framework7 - SearchBar關閉鍵盤
- 29. iOS - 關閉返回鍵的鍵盤
- 30. Android - requestFocus開關鍵盤關閉
在self.view上添加點按手勢... –