Sto lavorando su una vista che ha più oggetti UITextField
. Il mio controller di visualizzazione funge da UITextFieldDelegate
e ho implementato il metodo (BOOL)textFieldShouldEndEditing:(UITextField *)textField
per salvare e convalidare il record visualizzato.textFieldShouldEndEditing chiamato più volte
Se l'utente fa clic sul pulsante "Fatto" dopo aver modificato un elemento e il salvataggio/convalida non riesce, viene visualizzato un UIAlertView
e l'utente viene mantenuto su UITextField
che non riesce la convalida.
mio problema è questo - quando un utente fa clic dal UITextField
che fallirà Salva/validazione su un altro dei UITextField
s, allora il metodo (BOOL)textFieldShouldEndEditing:(UITextField *)textField
viene chiamato più volte, e il UIAlertView
apre più volte.
Perché (BOOL)textFieldShouldEndEditing:(UITextField *)textField
viene chiamato una volta quando l'utente fa clic su "Fatto" sulla tastiera, ma chiama più volte quando l'utente fa clic su un altro UITextField
?
Ecco il mio codice:
- (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;
}