iOS SDK: Dismiss keyboard when a button gets clicked?

做~自己de王妃 提交于 2020-01-02 04:32:55

问题


How can I dismiss the keyboard when the user clicks a button? A short example for a better understanding: the user edits some text in some textfields and at the end he doesn't click "Done" or smething else on the keyboard, but he clicks on an button "Save" while the keyboard is still shown. So, how can I now dismiss the keyboard?

Thx. Regards, Daniel


回答1:


in button action write,

if([textField isFirstResponder]){
  [textField resignFirstResponder];
}

if there are more textfields get the current textfield reference everytime while editing started, and resign its responder in button action.




回答2:


You can also call [view endEditing:YES] on any view above the text field in the hierarchy. This is useful if you aren't sure which text field has first responder status. It also optionally lets a text field delegate stop the action (by returning NO from shouldEndEditing:) which is nice if you are using a delegate to do validation on the fields.




回答3:


If you have multiple text fields and don't know which one is first responder (or you simply don't have access to the text fields from wherever you are writing this code) you can call endEditing: on the parent view containing the text fields.

In Swift, in the related view controller, add this line to the button function:

self.view endEditing(true)



回答4:


In addition to SriPriya's answer, please have here the Swift 2 styled version:

if numberTextField.isFirstResponder() {
    numberTextField.resignFirstResponder()
}

Please enjoy...



来源:https://stackoverflow.com/questions/6356979/ios-sdk-dismiss-keyboard-when-a-button-gets-clicked

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!