Telling a UITextField to become first responder while embedded in a UITableViewCell
It turned out that the text field was nil when I was trying to send it first responder.
Sending becomeFirstResponder
later in the life cycle worked.
I was having the same problem with a textfield I had added as a subview to a grouped table view cell - but figured out a solution after some poking around.
Assuming you have given the textfield a tag in your cellForRowAtIndexPath method, you can do something like this:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
myTextField = (UITextField *)[cell viewWithTag:kMyTextFieldTag];
[myTextField becomeFirstResponder];
}
Calling it in the -(void)viewDidLoad would work.
-(void)viewDidLoad{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.myTextField becomeFirstResponder]
//... any other code you need
}