Question

How I can get notified when UITextField becomeFirstResponder ?

I can check like isFirstResponder or set to to become first Responder by becomeFirstResponder

I want to get notified or handle an event when a user make this text field first responder.

Thanks.

Was it helpful?

Solution

You will need to be come the text field's delegate and implement this optional delegate method:

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

OTHER TIPS

Besides implementing the UITextFieldDelegate method textFieldDidBeginEditing:, you can register for the UITextFieldTextDidBeginEditingNotification notification.

The notification method could be:

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

The delegate is definitely the way to go. Unfortunately, in my situation I couldn't use that, because the controller was the delegate of my UITextField subclass and I needed to modify it's placeholder text. Instead I override the methods - (BOOL)canBecomeFirstResponder; & - (BOOL)resignFirstResponder;. Be sure to call super.

For OSX you should be aware of buttons having side effects when relying on the NSControlTextDidBeginEditingNotification.

When you start editing, push some buttons, and resume editing the text field, you won't get a second NSControlTextDidBeginEditingNotification when you resume editing.

In case this behavior causes a problem, UITextFieldTextDidChangeNotification might be an alternative.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top