iPhone中textfieldshouldendediting和textfieldDidendediting的区别

时间:2012-09-04 11:52:37

标签: iphone ios ios5 uitextfield

可能重复:
{{3p>

textFieldShouldendEditingtextfieldDidEndEditing方法之间有什么区别?何时使用这些方法。

3 个答案:

答案 0 :(得分:2)

来自文档:

textFieldShouldendEditing:
  

当要求文本字段重新签名第一响应者状态时,将调用此方法。当您的应用程序要求文本字段重新对焦或用户尝试将编辑焦点更改为其他控件时,可能会发生这种情况。但是,在焦点实际更改之前,文本字段会调用此方法,以便让您的代理人有机会决定是否应该这样做。

textfieldDidEndEditing:
  

在文本字段重新启动其第一个响应者状态后调用此方法。您可以使用此方法更新委托的状态信息。例如,您可以使用此方法隐藏仅在编辑时可见的叠加视图。

因此,textFieldShouldendEditing:方法将在textfieldDidEndEditing:方法

之前调用

答案 1 :(得分:1)

当textField即将结束编辑模式时,

textFieldShouldendEditing会调用。它有BOOL返回类型。如果设置return NO,则textField将不会是resignFirstResponder并保持编辑模式,textfieldDidEndEditing将不会调用。

while textfieldDidEndEditing这是告诉您文本字段未处于编辑模式且键盘已关闭的方法。

有关详情,请参阅UITextFieldDelegate Protocol 希望这会有所帮助:)

答案 2 :(得分:1)

<强> textFieldDidEndEditing: 当文本字段作为第一个响应者重新调用时调用。这样您就可以获得用户输入的值。

textFieldShouldendEditing:用于检查用户输入的密钥是否应显示在文本字段中。因此,如果您返回NO,则不会显示该键。 想象一下您想要限制输入字母数量的标签。您可以使用上面的内容来检查输入了多少字符,如果它们已达到限制,则返回值NO,这基本上不会占用任何新的击键。

您可以查看reference doc了解详情。