我正在研究一個包含多個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;
}