保存UITextField测试的最佳方法:textFieldShouldReturn或textFieldDidEndEditing[英] Best method to save UITextField test: textFieldShouldReturn or textFieldDidEndEditing

本文是小编为大家收集整理的关于保存UITextField测试的最佳方法:textFieldShouldReturn或textFieldDidEndEditing的处理方法,想解了保存UITextField测试的最佳方法:textFieldShouldReturn或textFieldDidEndEditing的问题怎么解决?保存UITextField测试的最佳方法:textFieldShouldReturn或textFieldDidEndEditing问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

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

谢谢!!

推荐答案

textFieldShouldReturn 仅在用户按下返回键时调用.如果由于某些其他原因(例如用户选择另一个字段,或将视图切换到另一个屏幕)而关闭键盘,则不会,但 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
}

但是,如果您实际上只想在用户明确按下键盘上的"开始"或"发送"或"搜索"(或其他)按钮时执行该操作,那么您应该将该处理程序放在 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;
}

本文地址:https://www.itbaoku.cn/post/924395.html