textFieldDidBeginEditing se llama prematuramente

Tengo una aplicación en la que tengo que desplazarme hacia arriba en caso de que aparezca el teclado. para obtener el tamaño del teclado, estoy registrando elUIKeyboardWill ShowNotification evento como tal:

   [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(keyboardWillShow:)
     name:UIKeyboardWillShowNotification
     object:self.view.window]

Esto funciona, el problema es que se llama después deltextFieldDidBeginEditing fue llamado Por lo tanto, no puedo obtener el tamaño real del teclado, pero solo después de que el campo ya esté en modo de edición, lo que anula todo el propósito de registrar este evento en primer lugar. Estoy seguro de que he llamado alUIKeyboardWill ShowNotification y no elUIKeyboardDidShowNotification, aunque el cambio de estos dos produce los mismos resultados: la primera llamada se realizó al método de delegado y solo luego al método de notificación. ¿Alguna idea de cómo cambiar esto? Actualmente estoy codificando el tamaño, lo que es una muy mala práctica ...

Respuestas a la pregunta(5)

Su respuesta a la pregunta