UITextField endEditing:YES(强制)不解除键盘

时间:2017-05-24 17:51:52

标签: ios objective-c uitextfield ios9

我在自定义日期/时间编辑器控件中有几个UITextField对象(没有微调器)。在数据记录添加操作期间,控件位于模态呈现的TableViewController上的UITableViewCell中。

如果用户取消添加操作,我需要丢弃所有数据并关闭控制器和键盘(如果显示)。我通过在按下取消按钮时调用此方法来执行此操作:

-(void)cancel
{
    _tempMOC = nil;
    [self.view endEditing:YES];
    [self dismissViewControllerAnimated:YES completion:NULL];
}

根据Apple文档,UIView endEditing表示:

  

指定YES以强制第一响应者辞职,无论是否要这样做。

我的textFieldShouldEndEditing:返回值应该被忽略,但这是 的情况。

  • 我已通过日志声明验证textFieldShouldEndEditing: 被调用。
  • 但是,该值被忽略,因为当此方法返回 YES 时键盘被解除。

结果是模态视图控制器被解除,在屏幕上留下一个孤立的键盘,只能通过重新启动应用程序来解除它。

这是一个有问题的痛苦,因为我在这里做了各种验证操作:

-(BOOL)textFieldShouldEndEditing:(UITextField *)tf
{
    /* Validate data for up to 6 UITextFields in this control. */
    ...
    return valid ? YES : NO;
}

如果用户在控制器上点击取消,我真的需要它忽略返回值,否则我必须做一些愚蠢的警告,以弄清楚用户点击取消的六个级别那个案子总是返回YES。

对于可能发生的事情或者我是否遗漏了某些事情的任何想法...或者呃,我发现了另一个Apple bug?!

******更新****

现在报告为雷达:32442632。

0 个答案:

没有答案