UITextField Editing Did Begin 在视图 endEditing 上调用
UITextField Editing Did Begin called on view endEditing
这一切都适用于我在应用商店中的版本。但是,如果我将 git 恢复为那个,它就不再有效了。可能是因为我更新了 Xcode(现在是 6.3)但不确定。问题是:
我在调用 UITextField 'Editing Did Begin' 处理程序时显示 UIAlert。
警报警告用户“您确定要编辑它吗?”
如果用户点击 'Cancel' 然后我调用
[self.view endEditing:YES];
以前在我的应用程序中,这具有离开 UITextField 并关闭对话框的效果。
现在隐藏 UIAlert 后,焦点返回到 UITextField,导致 UIAlert 被创建并再次显示。
问题是,如何从 UITextField 中移除焦点?为什么以前可以用,现在不行了?
也试过 [sender resignFirstResponder] 但这也不起作用。
回复评论的更多信息:这是 'Did End Editing' 处理程序代码
- (IBAction)textFieldReturned:(id)sender
{
[sender resignFirstResponder];
}
问题似乎源于试图从 alertView:clickedButtonAtIndex:
方法中退出文本字段。这太早了。
我建议您改用 alertView:didDismissWithButtonIndex:
委托方法。这样,当您退出文本字段时,警报已经解除。
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == alertView.cancelButtonIndex) {
[self.view endEditing:YES];
} else {
// handle other buttons
}
}
这一切都适用于我在应用商店中的版本。但是,如果我将 git 恢复为那个,它就不再有效了。可能是因为我更新了 Xcode(现在是 6.3)但不确定。问题是:
我在调用 UITextField 'Editing Did Begin' 处理程序时显示 UIAlert。 警报警告用户“您确定要编辑它吗?”
如果用户点击 'Cancel' 然后我调用
[self.view endEditing:YES];
以前在我的应用程序中,这具有离开 UITextField 并关闭对话框的效果。
现在隐藏 UIAlert 后,焦点返回到 UITextField,导致 UIAlert 被创建并再次显示。
问题是,如何从 UITextField 中移除焦点?为什么以前可以用,现在不行了?
也试过 [sender resignFirstResponder] 但这也不起作用。
回复评论的更多信息:这是 'Did End Editing' 处理程序代码
- (IBAction)textFieldReturned:(id)sender
{
[sender resignFirstResponder];
}
问题似乎源于试图从 alertView:clickedButtonAtIndex:
方法中退出文本字段。这太早了。
我建议您改用 alertView:didDismissWithButtonIndex:
委托方法。这样,当您退出文本字段时,警报已经解除。
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == alertView.cancelButtonIndex) {
[self.view endEditing:YES];
} else {
// handle other buttons
}
}