iOS event when keyboard hides
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}
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!")}
You can listen for a UIKeyboardWillHideNotification
, it's sent whenever the keyboard is dismissed.