For some reason, I am having problems creating the text box by the first responder.
I have a UITableView with two rows. Each line has a label and a UITextField. Text fields are marked with kLoginRowIndex = 0 and kPasswordRowIndex = 1. As you might have guessed, I use this to set the username and password.
If the user presses the back button while editing the text input field, I want the password text field to get focus. Unfortunately, the password text field does not accept focus. Here is my code:
- (BOOL)textFieldShouldReturn:(UITextField *)textField { NSLog(@"%s:(textField.tag:%d)", __FUNCTION__, textField.tag); [textField resignFirstResponder]; if(textField.tag == kLoginRowIndex) { UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:kPasswordRowIndex inSection:0]]; UITextField *nextTextField = (UITextField *)[cell viewWithTag:kPasswordRowIndex]; NSLog(@"(nextTextField.tag:%d)", nextTextField.tag); NSLog(@"canBecomeFirstResponder returned %d", [nextTextField canBecomeFirstResponder]); NSLog(@"becomeFirstResponder returned %d", [nextTextField becomeFirstResponder]); } else { [self validate:textField]; } return NO; }
This is the output of the log:
- [SettingsViewController textFieldShouldReturn:] :( textField.tag: 0)
(nextTextField.tag: 1)
canBecomeFirstResponder returned 1
becomeFirstResponder returned 0
What I tried:
- return YES instead of NO
- removing the canBecomeFirstResponder call (which is for debugging purposes only)
Any hints appreciated!
iphone uikit uitextfield
Daniel Hepper Dec 13 '09 at 12:44 2009-12-13 12:44
source share