【发布时间】:2012-09-04 11:52:36
【问题描述】:
可能重复:
Diffrence between textfieldshouldendediting and textfieldDidendediting in iPhone
textFieldShouldendEditing 和 textfieldDidEndEditing 方法有什么区别?以及何时使用这些方法。
【问题讨论】:
标签: iphone ios ios5 uitextfield
可能重复:
Diffrence between textfieldshouldendediting and textfieldDidendediting in iPhone
textFieldShouldendEditing 和 textfieldDidEndEditing 方法有什么区别?以及何时使用这些方法。
【问题讨论】:
标签: iphone ios ios5 uitextfield
来自文档:
textFieldShouldendEditing:
当文本字段被要求放弃第一响应者状态时调用此方法。当您的应用程序要求文本字段放弃焦点或用户尝试将编辑焦点更改为另一个控件时,可能会发生这种情况。然而,在焦点实际改变之前,文本字段会调用此方法,让您的委托有机会决定是否应该这样做。
textfieldDidEndEditing:
在文本字段放弃其第一响应者状态后调用此方法。您可以使用此方法更新委托的状态信息。例如,您可以使用此方法隐藏应仅在编辑时可见的覆盖视图。
所以,textFieldShouldendEditing:method 将在 textfieldDidEndEditing:method 之前被调用
【讨论】:
textFieldShouldendEditing 将在您的 textField 即将结束编辑模式时调用。它有一个 BOOL 返回类型。如果您设置return NO,那么您的 textField 将不会是 resignFirstResponder 并保持在编辑模式,textfieldDidEndEditing 不会调用。
textfieldDidEndEditing 这个方法告诉您您的文本字段未处于编辑模式并且您的键盘已关闭。
更多详情请参考UITextFieldDelegate Protocol 希望这会有所帮助:)
【讨论】:
textFieldDidEndEditing: 当文本字段辞去第一响应者的职务时调用。这样你就可以得到用户输入的值了。
textFieldShouldendEditing: 用于检查用户输入的键是否应该显示在文本字段上。因此,如果您返回 NO,则不会显示该键。
想象一个标签,您想限制输入的字母数量。您可以使用上面的方法来检查输入了多少个字符,如果它们达到了限制,则返回值NO,它基本上不需要任何新的击键。
您可以查看reference doc 了解更多信息。
【讨论】: