繁体   English   中英

当UITextField成为FirstResponder时得到通知

[英]get notified when UITextField becomeFirstResponder

UITextField becomeFirstResponder时如何获得通知?

我可以像isFirstResponder一样检查,也可以设置为通过成为becomeFirstResponder成为第一响应者

当用户将此文本字段设为第一响应者时,我想得到通知或处理事件。

谢谢。

您将需要成为文本字段的委托并实现此可选委托方法:

- (void)textFieldDidBeginEditing:(UITextField *)textField; 

除了实现UITextFieldDelegate方法textFieldDidBeginEditing: ,您还可以注册UITextFieldTextDidBeginEditingNotification通知。

通知方法可以是:

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification {
    UITextField *textField = (UITextField *)notification.object;
}

代表无疑是必经之路。 不幸的是,在我的情况下,我不能使用它,因为控制器是我的UITextField子类的委托,并且我需要修改它的占位符文本。 相反,我重写了方法- (BOOL)canBecomeFirstResponder; - (BOOL)resignFirstResponder; 一定要叫超级。

对于OSX,在依赖NSControlTextDidBeginEditingNotification时,应该注意按钮具有副作用。

当您开始编辑时,按一些按钮,然后继续编辑文本字段,当您继续编辑时,不会再收到NSControlTextDidBeginEditingNotification

如果此行为引起问题,则可以选择UITextFieldTextDidChangeNotification

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM