UIKeyboardWillShowNotification llamando dos veces ios 9

Estoy usando UIKeyboardWillShowNotification para detectar cuándo un campo de text es seleccionado por el usuario y el keyboard se está abriendo. En ios 8 y versiones anteriores de iOS está funcionando bien pero hoy actualizo a iOS 9 y xCode 7. el problema es que en iOS ahora se llama a la notificación después de seleccionar cada campo de text (mientras que en ios 8 solo se llama después de seleccionar el primer campo de text) .

Busqué sobre esto y encontré alguna publicación como ¿Por qué se llama UIKeyboardWillShowNotification cada vez que se selecciona otro TextField?

pero no se trata de iOS 9 (en realidad todo estaba bien en iOS8 y al actualizar veo el problema) y tampoco estoy usando inputAccessoryViews.

El mismo problema aqui. Tengo un cierto UITexfield en mi controller de vista y cuando salgo de un campo de text para otro mediante progtwigción usando el método UIKeyboardWillShowNotification , se UIKeyboardWillShowNotification llamar a UIKeyboardWillShowNotification . Incluso si el keyboard no se oculta y muestra de nuevo. Sin embargo, UIKeyboardWillHideNotification no se llama.

No sé por qué apareció este problema en iOS9, pero puedo darte una solución. Lo que hice: Creé una propiedad BOOL en mi controller de vista:

 @property (assign, nonatomic) BOOL keyboardIsShown; 

Y en mis methods de Observadores de keyboard:

 - (void)keyboardWillHideNotification:(NSNotification *)notification { self.keyboardIsShown = NO; //rest of code } - (void)keyboardWillShowNotification:(NSNotification *)notification { if(self.keyboardIsShown) { return; } self.keyboardIsShown = YES; //some code } 

Si alguien tiene una solución más limpia para evitar que UIKeyboardWillShowNotification sea ​​invocado varias veces en iOS9 cuando llame a becomeFirstResponder en otro UITextField , ¡lo tomaría!

Creo que UIKeyboardWillShowNotification se activó dos veces debido a la list de sugerencias que se encuentra sobre el keyboard. Cuando desactivé Pnetworkingictive a través de Configuración-> General-> Teclado-> Pnetworkingictivo, UIKeyboardWillShowNotification solo se desencadena una vez.