UITextField Editing在视图endEditing

时间:2015-05-19 15:31:12

标签: ios objective-c uitextfield uialertview

这一切都适用于我在app store上的版本。但是,如果我将我的git恢复到那个,它就不再适用了。可能是因为我更新了Xcode(现为6.3)但不确定。问题是:

当我的UITextField'编辑开始时,我展示了一个UIAlert'处理程序被调用。 警报警告用户“您确定要编辑此内容吗?"

如果用户点击了'取消'然后我打电话给

[self.view endEditing:YES];

以前在我的应用程序中,这具有离开UITextField并关闭对话框的效果。

现在隐藏UIAlert后,焦点会返回到UITextField,导致UIAlert被创建并再次显示。

问题是,如何从UITextField中删除焦点?为什么它曾经起作用,但不再适用了?

还尝试了[sender resignFirstResponder],但这并没有做到这一点。

更多信息以回应评论:这里是“结束编辑”'处理程序代码

- (IBAction)textFieldReturned:(id)sender
{   
[sender resignFirstResponder];
}

1 个答案:

答案 0 :(得分:1)

问题似乎源于尝试从alertView:clickedButtonAtIndex:方法中重新签名文本字段。这太早了。

我建议您改为实现alertView:didDismissWithButtonIndex:委托方法。这样,当您重新签名文本字段时,警报已被解除。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == alertView.cancelButtonIndex) {
        [self.view endEditing:YES];
    } else {
        // handle other buttons
    }
}