Estoy haciendo una pantalla de inicio de sesión para mi aplicación y quiero que el botón de retorno diga "Siguiente" cuando hay un campo que aún no está completo y debería decir "Ir "cuando todos los campos están llenos (estoy hablando de UITextFields).Cambiar returnButton mientras edita congela el teclado por 1 toque
El siguiente código funciona bien porque muestra Next y Go en los momentos correctos. Pero cada vez que cambia de "Siguiente" a "Ir", se ignora el siguiente toque en el teclado. Cuando dice "Ir" y yo vacía el campo de texto retrocediendo, no hay tal problema y muestra Siguiente como debería. Es casi como si el teclado viejo todavía estuviera allí y se desvaneciera después de haberlo pulsado.
Mi pregunta es: ¿cuál es la fuente de este problema y, más importante aún, cómo me deshago de este bloqueo del teclado?
UITextField *theSender = (UITextField *)sender;
if (allTextFieldsAreFilled) {
if (theSender.returnKeyType!=UIReturnKeyGo) {
theSender.returnKeyType = UIReturnKeyGo;
[theSender resignFirstResponder];
[theSender becomeFirstResponder];
}
} else {
if (theSender.returnKeyType!=UIReturnKeyNext) {
theSender.returnKeyType = UIReturnKeyNext;
[theSender resignFirstResponder];
[theSender becomeFirstResponder];
}
}
Este código se llama cada vez que se cambia el valor de una de las tres UITextFields, por lo que es un IBAction conectados al acontecimiento cambió edición.
Gracias de antemano por su ayuda!
EDITAR
descubrí esto sólo ocurrirá si el campo de texto se establece como seguro (contraseña). ¡Cuando no está configurado para asegurar, no se congelará y mi código funciona perfectamente! El problema es que el cambio al botón "Ir" generalmente ocurrirá cuando un campo de texto 'seguro' es el primer respondedor. Entonces esto no cambia nada al problema.
Es extraño, verifico mi código contra el tuyo. – Manuel
He copiado tu código pero no se detendrá. – Manuel
Hmm; Debe haber algo más. ¿Qué SDK, iOS y dispositivo estás usando? ¿Intentó hacer un nuevo proyecto para probarlo? ¿O simplemente usando tu actual? – Wex