Как вы измените UIControl с акцентом на iPhone? - PullRequest
7 голосов
/ 22 января 2009

Я пытаюсь сделать что-то, что мне показалось бы простым.

У меня есть форма с двумя UITextFields. Я использую стиль UIReturnKeyNext на первом. Идея заключается в том, что когда пользователь заполняет первое поле, он нажимает кнопку «Далее», и я перехожу к следующему UITextField. Я видел другие приложения, которые делают это, и это работает очень хорошо. Но я не могу понять, как установить фокус на следующее поле.

Ответы [ 2 ]

9 голосов
/ 22 января 2009

Simple. отправьте сообщение о становлении в ответ на другое текстовое поле. Когда другое текстовое поле принимает статус первого респондента, оно получит информацию с клавиатуры.

Например:

//called when the next button is pressed
//Assume textField1, 2, and 3 are instances of UITextField
-(IBAction) nextPressed: (id) sender {
      if ([textField1 isFirstResponder]) {
         [textField2 becomeFirstResponder];
      }
      if ([textField2 isFirstResponder]) {
         [textField3 becomeFirstResponder];
      }

}
0 голосов
/ 10 мая 2012

Ответ выше прекрасно работает, за исключением того, что вы захотите переопределитьFirstResponder из исходного текстового поля.

Если вы не подаете в отставку первый респондент, автоматическая настройка прокрутки IOS не будет работать, когда следующее поле станет первым респондентом. (Возможно, клавиатура закрывает следующее текстовое поле.)

-(IBAction) nextPressed: (id) sender {

    //Resign first so that when the next field becomes firstResponder 
    //the text field will scroll into place if covered by the keyboard
    [sender resignFirstResponder];      

    if ([textField1 isFirstResponder]) {
       [textField2 becomeFirstResponder];
    }
    if ([textField2 isFirstResponder]) {
       [textField3 becomeFirstResponder];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...