Стать первым респондентом следующего доступного (не скрытого) текстового поля - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь сделать так, чтобы приложение iPhone Swift 4, которое имеет различные текстовые поля для ввода пользователем, переходило в другое текстовое поле, когда пользователь нажимает клавишу Enter.Я сделал это с помощью оператора switch, но теперь, когда я добавил способность текстовых полей скрывать или отображать в соответствии с предыдущим выбором пользователя, мой оператор switch больше не работает, потому что я использую имя каждого текстового поля.Я не смог сделать это с помощью тегов.

Мне нужно следующее текстовое поле, чтобы пользовательский ввод мог измениться, когда пользователь нажимает Enter, учитывая, что некоторые поля UITextFields будут скрыты.Я думаю, что мне нужно упорядочить весь вводимый пользователем текст, а затем использовать цикл while, но я не продвигаюсь вперед.

1 Ответ

0 голосов
/ 05 марта 2019
  • добавьте UITextFieldDelegate в свой класс
  • в viewDidLoad () установите делегата self для каждого текстового поля, например, так:

    yourTextfield.delegate = self

Затем добавьте эту функцию

// Textfield delegate
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    switch textField {
    case firstTextfield:
        firstTextfield.resignFirstResponder()
        secondTextfield.becomeFirstResponder()
    case secondTextfield:
        secondTextfield.resignFirstResponder()
        thirdTextfield.becomeFirstResponder()
    default:
        textField.resignFirstResponder()
    }
    return false
}
...