Estoy trabajando en una vista que tiene múltiples objetos UITextField
. Mi controlador de vista sirve como UITextFieldDelegate
, y he implementado el método (BOOL)textFieldShouldEndEditing:(UITextField *)textField
para guardar y validar el registro que se muestra.textFieldShouldEndEditing llamado varias veces
Si el usuario hace clic en el botón "Hecho" después de editar un elemento y el guardar/validar falla, aparece un UIAlertView
y el usuario se mantiene en el UITextField
que falla la validación.
Mi problema es el siguiente - cuando un usuario hace clic en el UITextField
que fallará Guardar/validación en otro de los UITextField
s, entonces el método (BOOL)textFieldShouldEndEditing:(UITextField *)textField
se llama varias veces, y el UIAlertView
aparece varias veces.
¿Por qué se llama (BOOL)textFieldShouldEndEditing:(UITextField *)textField
una vez cuando el usuario hace clic en "Listo" en el teclado, pero se le llama varias veces cuando el usuario hace clic en otro UITextField
?
Aquí está mi código:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
NSLog(@"textFieldShouldEndEditing called by textField with text=%@", textField.text);
currentItem.nameOrNumber = nameOrNumber.text;
// Try to save the managed object.
NSError *error = nil;
if (![[currentItem managedObjectContext] save:&error]) {
UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Uh Oh!",@"")
message:[error localizedDescription]
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK",@"")
otherButtonTitles:nil];
[errorAlert show];
[errorAlert release];
shouldEnd = NO;
}
return shouldEnd;
}