Tengo varios UITextFields en mi opinión (cada uno dentro de una UITableViewCell). Cuando se dispara el teclado desde cualquiera de los campos de texto, necesito hacer algunas animaciones, principalmente para cambiar el marco de UITableView. Lo mismo debe suceder cuando el teclado se ocultará.UIKeyboardWillShowNotification, UIKeyboardWillHideNotification y NSNotificationCenter problema entre las versiones de iOS
He hecho la animación, por lo que este no es el problema aquí.
Ahora, yo uso NSNotificationCenter para atrapar muestra/ocultación del teclado:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
El problema es cuando el teclado es visible (se utiliza un campo de texto) y pulse dentro de otro campo de texto. Por lo general, para esto, el teclado no se ocultará, sino que permanecerá visible.
Funciona bien en iOS 4, pero el problema viene en 3.1.3 (esta es la versión que puedo probar, posiblemente cualquier versión por debajo de 3.2). En las versiones anteriores a la 3.2 cambiar el enfoque de un campo de texto directamente a otro campo de texto activará UIKeyboardWillHideNotification y UIKeyboardWillShowNotification.
Cualquiera sabe una manera de realizar algunas animaciones cuando el teclado realmente se mostrará/ocultará, sin NSNotificationCenter?
¿O cómo puedo solucionar este problema con versiones inferiores a 3.2?
Gracias.
Una consideración: casi todo el mundo se ha actualizado a iOS 4 y aquellos que rara vez han descargado o actualizado aplicaciones. Una alternativa es cambiar a solo compatibilidad con iOS 4 para nuevas versiones. Solo preocúpese de apoyar tanto si su aplicación es algo a la par de importancia con una aplicación bancaria o si tiene alguna necesidad muy especial para hacerlo. –
@Peter: de acuerdo con usted. Solo que la aplicación está casi lista. Este pequeño problema no es una razón real para que solo admita dispositivos iOS4. – CristiC