当UITextField成为FirstRirstponder时收到通知

时间:2013-01-24 22:19:10

标签: iphone ios uitextfield first-responder becomefirstresponder

如何在UITextField becomeFirstResponder时收到通知?

我可以查看isFirstResponder或设置为becomeFirstResponder

成为第一个响应者

当用户将此文本字段作为第一响应者时,我希望收到通知或处理事件。

感谢。

4 个答案:

答案 0 :(得分:35)

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

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

答案 1 :(得分:13)

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

通知方法可以是:

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

答案 2 :(得分:1)

代表绝对是要走的路。不幸的是,在我的情况下我无法使用它,因为控制器是我的UITextField子类的委托,我需要修改它的占位符文本。相反,我覆盖方法- (BOOL)canBecomeFirstResponder;& - (BOOL)resignFirstResponder;。一定要打电话给超级。

答案 3 :(得分:0)

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

当您开始编辑时,按下某些按钮,然后继续编辑文本字段,当您继续编辑时,您将不会获得第二个NSControlTextDidBeginEditingNotification

如果此行为导致问题,UITextFieldTextDidChangeNotification可能是另一种选择。