I need to control, after keyboard is shown and done button is pressed, when keyboard hides. Which event is triggered when hides keyboard on iOS? Thank you
3 Answers
Yes Use the following
//UIKeyboardDidHideNotification when keyboard is fully hidden //name:UIKeyboardWillHideNotification when keyboard is going to be hidden [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(onKeyboardHide:) name:UIKeyboardWillHideNotification object:nil]; And the onKeyboardHide
-(void)onKeyboardHide:(NSNotification *)notification { //keyboard will hide } 2 Comments
Andres Canella
This will trigger at the moment of dismissal, not when the keyboard is fully hidden.
Omar Abdelhafith
yes, correct, please check the updated answer, for fully hidden notification use
UIKeyboardDidHideNotificationIf you want to know when the user press the Done button, you have to adopt the UITextFieldDelegate protocol, then in you View controller implement this method:
Swift 3:
func textFieldShouldReturn(_ textField: UITextField) -> Bool { // this will hide the keyboard textField.resignFirstResponder() return true } If you want to know simply when keyboard is shown or is hiding, use a Notification :
Swift 3:
NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)), name: .UIKeyboardWillShow , object: nil) NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillHide(_:)), name: .UIKeyboardWillHide , object: nil) func keyboardWillShow(_ notification: NSNotification) { print("keyboard will show!") // To obtain the size of the keyboard: let keyboardSize:CGSize = (notification.userInfo![UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.size } func keyboardWillHide(_ notification: NSNotification) { print("Keyboard will hide!") } Comments
You can listen for a UIKeyboardWillHideNotification, it's sent whenever the keyboard is dismissed.
1 Comment
Henri Normak
To be precise, the notification is sent BEFORE the keyboard is dismissed.