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.
You can ask the system to dismiss the keyboard by calling the resignFirstResponder() method of your text field. Usually, you dismiss the keyboard in response to specific interactions. For example, you might dismiss the keyboard when the user taps the keyboard's return key.
At the keyboard settings tab, select configure input methods. At Android keyboard, select Settings. Uncheck Sound on keypress. Done.
I just figured it out...
[mytextField addTarget:self
action:@selector(methodToFire:)
forControlEvents:UIControlEventEditingDidEndOnExit];
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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With