我正在研究一个包含多个UITextField
对象的视图。我的视图控制器用作UITextFieldDelegate
,并且我实现了(BOOL)textFieldShouldEndEditing:(UITextField *)textField
方法来保存和验证正在显示的记录。textFieldShouldEndEditing被调用多次
如果用户在编辑项目并点击保存/验证失败后点击“完成”按钮,则会显示UIAlertView
,并且用户保留在验证失败的UITextField
上。
我的问题是这样的 - 当用户从UITextField
,将节省/验证失败到另一个UITextField
S的点击,则(BOOL)textFieldShouldEndEditing:(UITextField *)textField
方法被调用多次,和UIAlertView
多次弹出。
为什么(BOOL)textFieldShouldEndEditing:(UITextField *)textField
在用户点击键盘上的“完成”时调用一次,但当用户点击另一个时调用多次UITextField
?
这里是我的代码:
- (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;
}