Как установить фокус на следующее поле uitext в iPhone?

У меня есть 8 полей uitext, предназначенных для пароля. Каждое текстовое поле содержит одну букву из пароля. Когда я набираю одну букву, а после этого, когда я нажимаю вторую клавишу, фокус перемещается на следующую текстовое поле. Но я хочу, чтобы, как только я закончу вводить первый символ, фокус должен переместиться в следующее текстовое поле без нажатия другой клавиши или клавиши табуляции. Как я могу это сделать? Любой учебник с образцом кода для этого? Я использовал следующий код:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(keyPressed:) name: UITextFieldTextDidChangeNotification object: nil];
    // Try to find next responder

    UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
    if (nextResponder) {
        // Found next responder, so set it.
        //nextTag += 1;
        [nextResponder becomeFirstResponder];
        if ([nextResponder tag] == 308) {
            //[self performSelector:@selector(checkPassCode) withObject:nil afterDelay:0.0];
            [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkPassCode) userInfo:nil repeats:NO];
            lastResponder = nextResponder;
        }
        return YES;
    } else {
        [textField resignFirstResponder];
        return NO;
    }
}


-(void) keyPressed: (NSNotification*) notification
{
    nextTag += 1;
    [[NSNotificationCenter defaultCenter] removeObserver: self name:UITextFieldTextDidChangeNotification object: nil];
}
5
задан Peter Mortensen 23 May 2011 в 17:04
поделиться