ios - UITextField 编辑已开始在 View endEditing 上调用

标签 ios objective-c uitextfield uialertview

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

当调用 UITextField“编辑开始”处理程序时,我会显示 UIAlert。 警报警告用户“您确定要编辑此内容吗?”

如果用户点击“取消”,那么我会调用

[self.view endEditing:YES];

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

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

问题是,如何从 UITextField 中移除焦点?为什么它曾经有效,但现在不再有效?

还尝试了 [sender resignFirstResponder] 但这也不起作用。

响应评论的更多信息:这是“结束编辑”处理程序代码

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

最佳答案

问题似乎源于试图从 alertView:clickedButtonAtIndex: 方法中退出文本字段。这太早了。

我建议您改为实现 alertView:didDismissWithButtonIndex: 委托(delegate)方法。这样,当您退出文本字段时,警报已经解除。

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

关于ios - UITextField 编辑已开始在 View endEditing 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329968/

相关文章:

ios - 在 iPad 上锁定 UIViewController 方向

ios - AVPlayer 音频在比特率峰值后停止

ios - 一个xib,几个子类

ios - 是否可以在 UITextField 中设置宽空间

ios - Swift:设置委托(delegate)

ios - 在 iOS5 的 uitextfield 中禁用粘贴

ios - 无法将 SKNode 转换为 SKNode 的子类

ios - 防止在点击 UITextField 时出现键盘

iphone - navigationBar 中的左栏按钮项

objective-c - 分类为 NSNotification 观察者?