iPhone中textfieldshouldendediting和textfieldDidendediting的区别

时间:2012-09-04 11:50:13

标签: iphone ios ios5 uitextfield

textFieldShouldendEditing textfieldDidEndEditing 之间有什么区别,以及何时应该使用每种方法?

2 个答案:

答案 0 :(得分:12)

<强> textFieldShouldEndEditing

  

询问代表是否应在指定的文本字段中停止编辑。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
  

讨论当要求文本字段重新签名时,将调用此方法   响应者状态。当您的应用程序询问文本时可能会发生这种情况   用于重新对焦的字段或用户尝试更改编辑时   专注于另一个控制。然而,在焦点实际改变之前,   文本字段调用此方法为您的委托提供机会   决定是否应该。

     

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

<强> textFieldDidEndEditing

  

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

- (void)textFieldDidEndEditing:(UITextField *)textField

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

site:apple.com textFieldShouldendEditing

textFieldShouldEndEditing

textFieldDidEndEditing

答案 1 :(得分:2)

textFieldShouldendEditing上的

: 你应该返回BOOL值 是将辞职响应者,否则将留在原地

当文本字段位于编辑模式之后,

textfieldDidEndEditing将被触发。

根据Apple

当要求文本字段重新签名第一响应者状态时,将调用此方法。

在文本字段重新启动其第一个响应者状态后调用此方法。