强制UIView重新编辑未按预期工作

强制UIView重新编辑未按预期工作,uiview,Uiview,我在UIView中使用-(BOOL)endEditing:(BOOL)force方法来结束对视图中文本字段的编辑,并发现了一些意外行为 我创建了一个简单的测试程序,带有一个UITextField和两个UIButton。一个按钮调用[self.view endEditing:YES]以强制结束编辑,而另一个按钮调用[self.view endEditing:NO]以结束编辑,而不强制 该文件是textfield的委托,我在 -(BOOL)textField应取消编辑:(UITextField*)t

我在UIView中使用
-(BOOL)endEditing:(BOOL)force
方法来结束对视图中文本字段的编辑,并发现了一些意外行为

我创建了一个简单的测试程序,带有一个UITextField和两个UIButton。一个按钮调用
[self.view endEditing:YES]
以强制结束编辑,而另一个按钮调用
[self.view endEditing:NO]
以结束编辑,而不强制

该文件是textfield的委托,我在
-(BOOL)textField应取消编辑:(UITextField*)textField
方法

以下是按钮和文本字段代理的代码:

-(IBAction)doEndEditingForced:(id)sender {
    NSLog(@"==========================");
    NSLog(@"In doEndEditingForced");
    [self.view endEditing:YES];
}

-(IBAction)doEndEditingNotForced:(id)sender {
    NSLog(@"==========================");
    NSLog(@"In doEndEditingNotForced");
    [self.view endEditing:NO];
}

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    NSLog(@"ShouldEndEditing");
    return YES;
}
这是我得到的结果:

2011-10-03 15:36:22.153 Test[94596:207] ==========================
2011-10-03 15:36:22.155 Test[94596:207] In doEndEditingForced
2011-10-03 15:36:22.156 Test[94596:207] ShouldEndEditing
2011-10-03 15:36:26.145 Test[94596:207] ==========================
2011-10-03 15:36:26.146 Test[94596:207] In doEndEditingNotForced
2011-10-03 15:36:26.147 Test[94596:207] ShouldEndEditing
2011-10-03 15:36:26.148 Test[94596:207] ShouldEndEditing

如果调用
endEditing
force
参数等于
YES
,为什么要调用
textfield应该endEditing
方法,而调用
endEditing
force
参数等于
NO
,为什么
textfield应该取消编辑
方法被调用两次?

这种情况的发生是因为取消编辑方法不调用UITextField的任何委托方法,或者UITextView只是在视图中隐藏键盘