Как сделать так, чтобы текстовое поле «стало первым респондентом» в UIAlertView - PullRequest
7 голосов
/ 27 декабря 2011

У меня есть два текстовых поля в UIAlertView. Я хочу, чтобы второй стал первым респондентом, чтобы пользователю не приходилось нажимать на него. После того, как я показываю предупреждение, у меня есть этот код:

[textField becomeFirstResponder];

Единственная проблема в том, что он не работает. В первом текстовом поле есть типер. Есть идеи? Спасибо за вашу помощь.

Ответы [ 3 ]

13 голосов
/ 25 сентября 2012

У меня была такая же проблема при попытке установить фокус на поле пароля в UIAlertView (я предварительно заполнял имя пользователя). Мне пришлось использовать метод делегата:

- (void)didPresentAlertView:(UIAlertView *)alertView {
    UITextField *textField = [alertView textFieldAtIndex:0];
    [textField becomeFirstResponder];
}

Если я попробовал это на willPresentAlertView или когда я создал alertView, он не работал, только на didPresentAlertView. Надеюсь, это поможет.

0 голосов
/ 21 февраля 2017

Отмеченный ответ правильный, я просто добавляю немного уточнения, связанного с моим комментарием выше, вот код для; проверьте, что поле существует, прежде чем использовать его и посмотрите на индекс 0:

    if ([alertView textFieldAtIndex:0])
    {
        UITextField *textfield = [alertView textFieldAtIndex:0];
        [textfield becomeFirstResponder];
    }
0 голосов
/ 27 декабря 2011

Вы должны создать оповещение и добавить к нему UITextField. Затем вы можете назначить новое текстовое поле вашим первым респондентом, и это вызовет клавиатуру с вашим предупреждением.

Вот история, которая может быть тем, что вы ищете.

Просмотр предупреждений с подсказкой

...