Добавление готовой функциональности на клавиатуру для UITextField - PullRequest
1 голос
/ 23 ноября 2011

У меня есть вид с двумя UITextField, один для имени пользователя, один для пароля.

Я добавил функциональность, поэтому кнопка возврата usernameTF переходит на passwordTF. Я также сделал кнопку возврата на passwordTF «Go», который я хочу подключить к IBAction, который у меня есть, который будет содержать фактическую логику входа в систему.

Я пытался подключить IBAction к методу passwordTF Did End On Exit, но, похоже, его вызывали, когда usernameTF делал passwordTF первым респондентом.

Я использую этот код для перехода с usernameTF на passwordTF:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == self.usernameTextField) {
        [self.passwordTextField becomeFirstResponder];
    }
    [textField resignFirstResponder];
    return YES;
}

Я пробовал это, но он не вызывает метод, когда я нажимаю Go / Return:

[self.passwordTextField addTarget:self
                               action:@selector(loginButtonPressed:)
                     forControlEvents:UIControlEventEditingDidEndOnExit];

Я также пытался подключить IBAction к UITextField методу *1025*, который вызывает метод нормально, когда я нажимаю кнопку возврата, но он также вызывает метод, когда я нажимаю любой UITextField, кроме один я связал с этим методом. Любое исправление?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Вы можете попробовать использовать это

-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder];
    if (textField == txtfEmail)
        [txtfPassword becomeFirstResponder];
    else {
        [self login];
    }
    return YES;
}

Где [self login] - фактически вызываемый метод входа.Проверка учетных данных входа с сервера или из базы данных.txtfEmail - это Имя для входа, а txtfPassword - поле для ввода пароля.Надеюсь, это поможет

0 голосов
/ 23 мая 2013

@ Рахулшарма почти у цели, но не совсем. Он имеет 2 проблемы , решаемых с помощью следующего подхода:

-(BOOL)textFieldShouldReturn:(UITextField *)textField{
    // [textField resignFirstResponder];
    if (textField == txtfEmail) {
        [txtfPassword becomeFirstResponder];
        return NO; // Otherwise the "Return" char is posted onto next view
    } else {
        [self login];
    }
    return YES;
}
  1. вызов resignFirstResponder не требуется
  2. возврат NO гарантирует, что CR не будет отправлен на следующий элемент управления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...