我在自定义日期/时间编辑器控件中有几个UITextField对象(没有微调器)。在数据记录添加操作期间,控件位于模态呈现的TableViewController上的UITableViewCell中。
如果用户取消添加操作,我需要丢弃所有数据并关闭控制器和键盘(如果显示)。我通过在按下取消按钮时调用此方法来执行此操作:
-(void)cancel
{
_tempMOC = nil;
[self.view endEditing:YES];
[self dismissViewControllerAnimated:YES completion:NULL];
}
根据Apple文档,UIView endEditing
表示:
指定YES以强制第一响应者辞职,无论是否要这样做。
我的textFieldShouldEndEditing:
返回值应该被忽略,但这是 不 的情况。
textFieldShouldEndEditing:
被调用。结果是模态视图控制器被解除,在屏幕上留下一个孤立的键盘,只能通过重新启动应用程序来解除它。
这是一个有问题的痛苦,因为我在这里做了各种验证操作:
-(BOOL)textFieldShouldEndEditing:(UITextField *)tf
{
/* Validate data for up to 6 UITextFields in this control. */
...
return valid ? YES : NO;
}
如果用户在控制器上点击取消,我真的需要它忽略返回值,否则我必须做一些愚蠢的警告,以弄清楚用户点击取消的六个级别那个案子总是返回YES。
对于可能发生的事情或者我是否遗漏了某些事情的任何想法...或者呃,我发现了另一个Apple bug?!
******更新****
现在报告为雷达:32442632。