Question

I made a text field but I didn't use Interface Builder, I did it programmatically in Xcode. So now I need a programmatic way to make it resign first responder so that the keyboard will go away when the user presses enter.

Was it helpful?

Solution

As addition to cobbal's answer, don't forget to set text field's delegate to the class that implements

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

Adding descriptor to that class interface declaration is also a good thing.

OTHER TIPS

[textField resignFirstResponder];

docs

if you want it to go away when enter is pressed, you will need to implement

- (BOOL)textFieldShouldReturn:(UITextField *)textField

in your UITextFieldDelegate

I had this question my self and I realize that the above answer may not be what you're asking. My guess is you are adding UITextField as subviews to some view when you 'say double tap' (or some other event). It is important to make a controller the delegate of that subview.

-(void)handleDoubleTapGesture:(UITapGestureRecognizer *)gestureRecognizer{
     //some other code creating the textfield 
     [aTextField setDelegate:self];

In this case I've used the controller itself.

Now inside that controller I can implement

-(BOOL) textFieldShouldReturn:(UITxtField *)textField

and it will work.

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