Me gustaría crear un diálogo de código pin, como el que puede activar en el iPhone.Crear un diálogo de código pin
Para aquellos que no lo han visto, se compone de cuatro cuadros y un teclado numérico. Cuando ingresa un dígito, aparece un punto en el primer cuadro. Etcétera. Cuando presionas el botón Eliminar, se elimina el último punto.
tengo esta establecido como cuatro UITextFields y en mi delegado Yo escucho:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self performSelector:@selector(pickNext:) withObject:textField afterDelay:0.0];
return YES;
}
El pickNext: método cambiará a la siguiente UITextField, así:
- (void)pickNext:(UITextField*)textField
{
switch ([textField tag]) {
case 1:
[pin2 becomeFirstResponder];
break;
case 2:
[pin3 becomeFirstResponder];
break;
case 3:
[pin4 becomeFirstResponder];
break;
case 4:
[textField resignFirstResponder];
break;
default:
break;
}
}
Esta realidad funciona, pero el problema para mí es que la clave de eliminación no produce ninguna notificación cuando el UITextField ya está vacío. Entonces no tengo forma de moverme al UITextField anterior.
Entonces, ¿alguien tiene una mejor sugestión de cómo resolver este problema. Estoy pensando en el campo de texto oculto ... ??
Bueno, ValueChanged aparentemente no hace nada por un UITextField, al menos no recibo ningún evento. Pero "Edición modificada" envía eventos, pero nuevamente, no cuando el campo está vacío y pulso la tecla de borrar. – Kobski