Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS event when keyboard hides

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

like image 476
Jaume Avatar asked Sep 11 '25 09:09

Jaume


2 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
}
like image 182
Omar Abdelhafith Avatar answered Sep 12 '25 23:09

Omar Abdelhafith


If 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!")
}
like image 25
Domenico Avatar answered Sep 12 '25 22:09

Domenico