Question

How do I programmatically assign a method (observer?) to the didEndOnExit event of a UITextField object?

This is easy enough to do in IB but I can't figure out how to do it in code.

Was it helpful?

Solution

I just figured it out...

[mytextField addTarget:self 
        action:@selector(methodToFire:)
        forControlEvents:UIControlEventEditingDidEndOnExit];

OTHER TIPS

In your view controller implement the following method:

- (void)textFieldDidEndEditing:(UITextField *)textField{

//do stuff

}

Don't forget to set the delegate in viewDidLoad or the initializer:

myTextField.delegate = self;

For anyone considering to use this target to make another textfield becomeFirstResponder to create a 'Next' button option that feels like you are 'tabbing' through textFields I would recommend using textFieldShouldReturn instead with code like this. Let me tell you it works so well you'll feel like you're riding a unicorn:

    -(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder];

    if([textField isEqual:_textField1]){
        [_textField2 becomeFirstResponder];
        return NO;
    }else if([textField isEqual:_textField2]){
        [_textField3 becomeFirstResponder];
        return NO;
    }

    return YES;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top