textFieldShouldendEditing和textfieldDidEndEditing有什么区别,什么时候应该使用每种方法?
2 回答
textFieldShouldEndEditing:
询问代理编辑是否应该在指定的文本字段中停止。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
讨论当要求文本字段退出第一响应者状态时,将调用此方法。当您的应用程序要求文本字段放弃焦点或用户尝试将编辑焦点更改为另一个控件时,可能会发生这种情况。然而,在焦点实际改变之前,文本字段会调用此方法,让您的委托有机会决定是否应该这样做。
通常,您会从此方法返回 YES 以允许文本字段退出第一响应者状态。但是,如果您的委托在文本字段中检测到无效内容,您可能会返回 NO。通过返回 NO,您可以阻止用户切换到另一个控件,直到文本字段包含有效值。
textFieldDidEndEditing:
告诉代理指定文本字段的编辑已停止。
- (void)textFieldDidEndEditing:(UITextField *)textField
讨论 在文本字段退出其第一响应者状态后调用此方法。您可以使用此方法来更新您的委托的状态信息。例如,您可以使用此方法隐藏应仅在编辑时可见的覆盖视图。委托执行此方法是可选的。
站点:apple.com textFieldShouldendEditing
on textFieldShouldendEditing
:您应该返回BOOL
值 YES 将辞职响应者,NO 将保持原样
textfieldDidEndEditing
当文本字段处于编辑模式后将被触发。
根据苹果
当要求文本字段放弃第一响应者状态时,将调用此方法。
在文本字段放弃其第一响应者状态后调用此方法。