iPhone中textfieldshouldendediting和textfieldDidendediting之间的区别

textFieldShouldendEditingtextfieldDidEndEditing之间有什么区别,什么时候应该使用每个方法?

textFieldShouldEndEditing

询问委托人是否应在指定的文本字段中停止编辑。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 

讨论当文本字段被要求退出第一个响应者状态时,调用此方法。 当您的应用程序要求文本字段重新分配焦点或用户尝试将编辑焦点更改为另一个控件时,可能会发生这种情况。 但是,在焦点实际发生变化之前,文本字段将调用此方法,以便委托人有机会决定是否应该这样做。

通常情况下,您将从此方法返回YES以允许文本字段退出第一个响应者状态。 但是,如果代理人在文本字段中检测到无效内容,您可能会返回NO。 通过返回NO,可以防止用户切换到另一个控件,直到文本字段包含有效值。

textFieldDidEndEditing

告诉委托人对指定的文本字段停止编辑。

 - (void)textFieldDidEndEditing:(UITextField *)textField 

讨论在文本字段退出其第一个响应者状态之后调用此方法。 您可以使用此方法更新您的委托状态信息。 例如,您可以使用此方法隐藏仅在编辑时才可见的叠加视图。 由委托实现此方法是可选的。

网站:apple.com textFieldShouldendEditing

textFieldShouldEndEditing

textFieldDidEndEditing

textFieldShouldendEditing :你应该返回BOOL值YES会退出响应者和NO会留在它的地方

当文本字段在编辑模式之后时, textfieldDidEndEditing将被触发。

根据苹果

当文本字段被要求退出第一个响应者状态时调用此方法。

在文本字段退出其第一个响应者状态后调用此方法。