2014-11-19 12 views
6

Sono consapevole del keyboardWillShow e gli eventi keyboardWillHide per:La dimensione della tastiera ha cambiato evento in rapida?

override public func viewWillAppear(animated: Bool) { 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil) 
    } 

Ma con le nuove tastiere in iOS 8 la tastiera è in grado di cambiare, senza che respinge la tastiera e mi chiedevo come chiamare una funzione delle dimensioni della tastiera modificare. Qualcuno sa? Grazie.

Edit: E 'ora chiede cambiamento fotogramma, ma utilizzando questo codice:

if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { 
      NSLog("\(keyboardSize.height)") 
     } 

Esso restituisce la vecchia altezza della tastiera, ad esempio quando cambia il telaio a "224.0" si restituisce "253,0", come se l'altezza non si è aggiornato da tempo il codice viene chiamato, e quando va devono "253,0" restituisce la vecchia altezza di nuovo che è "224.0"

Edit 2: Invece di usare "UIKeyboardFrameBeginUserInfoKey", ho usato "UIKeyboardFrameEndUserInfoKey" e ora sta funzionando.

risposta

3

Si desidera UIKeyboardWillChangeFrameNotification e/o UIKeyboardDidChangeFrameNotification.

Vedere lo documentation of UIWindow per tutte le notifiche relative alla tastiera.

+0

Funziona bene, ma conosci la risposta alla mia domanda aggiornata sopra? – uhfocuz

+0

L'ho capito. – uhfocuz

+0

Puoi condividere la tua soluzione @uhfocuz? – andromedainiative

Problemi correlati