1

可能重复:
iPhone 中的 textfieldshouldendingediting 和 textfieldDidendediting 之间的差异

textFieldShouldendEditing和方法有什么区别textfieldDidEndEditing?以及何时使用这些方法。

4

3 回答 3

2

从文档:

textFieldShouldendEditing:

当要求文本字段放弃第一响应者状态时,将调用此方法。当您的应用程序要求文本字段放弃焦点或用户尝试将编辑焦点更改为另一个控件时,可能会发生这种情况。然而,在焦点实际改变之前,文本字段会调用此方法,让您的委托有机会决定是否应该这样做。

textfieldDidEndEditing:

在文本字段放弃其第一响应者状态后调用此方法。您可以使用此方法来更新您的委托的状态信息。例如,您可以使用此方法隐藏应仅在编辑时可见的覆盖视图。

因此,该textFieldShouldendEditing:方法将在方法之前textfieldDidEndEditing:调用

于 2012-09-04T12:09:14.700 回答
1

textFieldShouldendEditing当您的 textField 即将结束编辑模式时将调用。它有一个 BOOL 返回类型。如果您设置return NO比您的 textField 将不会 resignFirstResponder 并保持在编辑模式,textfieldDidEndEditing不会调用。

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

有关更多详细信息,请参阅UITextFieldDelegate 协议 希望这会有所帮助:)

于 2012-09-04T12:07:05.207 回答
1

textFieldDidEndEditing: 当文本字段辞去第一响应者时调用。因此,您可以获取用户输入的值。

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

您可以查看参考文档以获取更多信息。

于 2012-09-04T12:07:51.900 回答