ios - 保存 UITextField 测试的最佳方法 : textFieldShouldReturn or textFieldDidEndEditing

标签 ios

我的目标只是在用户单击键盘上的完成按钮后将文本保存在 UITextField 上。我可以在 extFieldShouldReturn 或 textFieldDidEndEditing 中执行此操作:这有什么区别吗?还是有更好的方法?

谢谢!!

最佳答案

textFieldShouldReturn 只有在用户按下返回键时才会被调用。如果键盘由于某些其他原因(例如用户选择另一个字段或将 View 切换到另一个屏幕)而被取消,则不会,但 textFieldDidEndEditing 会。

最好的方法是使用 textFieldShouldReturn 来退出响应者(隐藏键盘),如下所示:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //hide the keyboard
    [textField resignFirstResponder];

    //return NO or YES, it doesn't matter
    return YES;
}

当键盘关闭时,textFieldDidEndEditing 将被调用。然后,您可以使用 textFieldDidEndEditing 对文本执行某些操作:

- (BOOL)textFieldDidEndEditing:(UITextField *)textField
{
    //do something with the text
}

但是如果您实际上只想在用户明确按下键盘上的“go”或“send”或“search”(或其他)按钮时执行操作,那么您应该将该处理程序放在 textFieldShouldReturn 方法中,像这样:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //hide the keyboard
    [textField resignFirstResponder];

    //submit my form
    [self submitFormActionOrWhatever];

    //return NO or YES, it doesn't matter
    return YES;
}

关于ios - 保存 UITextField 测试的最佳方法 : textFieldShouldReturn or textFieldDidEndEditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101542/

相关文章:

ios - XCode 6.1.1中的蓝牙相关链接器错误

ios - 键盘和 UI 元素高度的自动布局问题

ios - 在 iPhone 上安装 Facebook 应用程序时,Facebook 登录失败

ios - 3D Touch UICollectionView insideUITableviewCell

ios - 获取 UITableView 中最后一行的索引路径

Xcode 4 目的地和方案

iPhone SDK : Is it allowed having two ad banners in a uiview?

ios - 没有找到合适的申请记录。验证您的包标识符是否正确,一切正确

ios - Google 云计算在后台使用 Swift 推送通知

ios - 通过键搜索字典数组