2012-06-05 2 views
24

Мне нужно управлять, после того, как клавиатура отображается и кнопка нажата, когда клавиатура скрывается. Какое событие запускается при скрытии клавиатуры на iOS? СпасибоСобытие iOS, когда скрывает клавиатуру

+0

http://developer.apple.com/library/ios/search /? q = клавиатура + скрыть –

+0

Возможный дубликат [ipad, как узнать, что клавиатура была скрыта] (http://stackoverflow.com/questions/7912246/ipad-how-to-know-keyboard-has-been-hidden) –

ответ

56

Да Используйте следующие

//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]; 

И onKeyboardHide

-(void)onKeyboardHide:(NSNotification *)notification 
{ 
    //keyboard will hide 
} 
+1

Это срабатывает в момент увольнения, а не когда клавиатура полностью скрыта. –

+2

Да, правильно, пожалуйста, проверьте обновленный ответ, для использования полностью скрытых уведомлений используйте 'UIKeyboardDidHideNotification' –

5

Вы можете слушать UIKeyboardWillHideNotification, он отправляется всякий раз, когда клавиатура отклоняется.

+7

Чтобы быть точным, уведомление отправляется ПЕРЕД клавиатурой. –

+0

@ Хенри, правильно ... поскольку я имею дело с этим прямо сейчас. – Morkrom

3

Если вы хотите знать, когда пресса пользователь Готово кнопку, вы должны принять протокол UITextFieldDelegate, то в вас Просмотреть контроллер реализуют этот метод:

Swift 3:

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    // this will hide the keyboard 
    textField.resignFirstResponder() 
    return true 
} 

Если вы хотите знать, просто, когда клавиатура отображается или скрывается, используйте 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!") 
} 
Смежные вопросы