2012-06-05 15 views
24

Necesito controlar, después de que se muestra el teclado y se presiona el botón, cuando el teclado se esconde. ¿Qué evento se desencadena cuando se oculta el teclado en iOS? GraciasiOS evento cuando el teclado se oculta

+0

http://developer.apple.com/library/ios/search /? q = keyboard + hide –

+0

posible duplicado de [ipad cómo saber si el teclado se ha ocultado] (http://stackoverflow.com/questions/7912246/ipad-how-to-know-keyboard-has-been-hidden) –

Respuesta

56

Sí Usar la siguiente

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

Y el onKeyboardHide

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

Esto se disparará en el momento del despido, no cuando el teclado está completamente oculto. –

+2

sí, correcto, compruebe la respuesta actualizada, para notificaciones totalmente ocultas use 'UIKeyboardDidHideNotification' –

5

Puede escuchar por UIKeyboardWillHideNotification, se envía cada vez que se cierra el teclado.

+7

Para ser precisos, la notificación se envía ANTES de que se desactive el teclado. –

+0

@Henri, correcto ... ya que estoy lidiando con eso ahora mismo. – Morkrom

3

Si quieres saber cuando el usuario pulse el botón Hecho, tiene que adoptar el protocolo UITextFieldDelegate, a continuación, en you Ver controlador implementar este método:

Swift 3:

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

Si usted quiere saber, simplemente, cuando se muestra el teclado o se esconde, utilice un 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!") 
} 
Cuestiones relacionadas