这是文本字段委托方法,但我对返回类型
有疑问-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return NO;
}
这与使用不同返回类型的方法相同
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
我们都可以在i手机中隐藏键盘。但是返回类型“YES”或“NO”的含义是什么。我没有看到任何区别。
答案 0 :(得分:29)
除了这里的其他答案(基本上确认没有重大差异,没有通过返回YES
等自动辞职第一响应者),我发现了一个奇怪的事件取决于返回值,特别是对于具有自动更正的UITextField
。
您有UITextField
启用了自动更正
您已经实现了类似的委托方法(文本字段被重新签名):
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == self.myAutocorrectingTextField) { [self.myAutocorrectingTextField resignFirstResponder]; } return YES; }
您运行应用程序,在文本字段中键入“ Cable ”,然后按返回键,将其作为第一响应者重新签名。
YES
时的结果:我测试过一些其他类似的答案:
NO
时的结果:<强>正常即可。文本字段的文本不会更改。
返回YES
时,文本字段可能会自动更正已经正确的单词。但是,它不会出现其中一个“自动更正文本气泡”,因为这些是合法的词语。
返回NO
时,文本字段不会自动更正已正确的字词。
注意:强> 在这两种情况下,错误拼写的单词将始终得到纠正。例如:
答案 1 :(得分:9)
根据个人经验,我看到的一个区别是,如果您返回YES,则会触发自动更正和自动大写,如果您返回NO,则不会。可能还有其他事情已经完成,但到目前为止我都能注意到这一点。
这就是“默认行为”的意思。
答案 2 :(得分:0)
我发现的最重要的区别是,如果文本字段发出控制事件UIControlEventEditingDidEndOnExit
,这将导致文本字段辞退第一响应者 textFieldShouldReturn
实现返回NO
。
答案 3 :(得分:-3)
textFieldShouldReturn是一个可以处理键盘上的Return按钮的地方。
textFieldShouldReturn询问代理文本字段是否应该按下返回按钮。
如果你实现自己的代码来处理返回按钮,你应该返回NO,或者返回YES以便以默认方式处理它。
IOS Docs声明: 只要用户点击返回按钮,文本字段就会调用此方法。点击按钮时,您可以使用此方法实现任何自定义行为。