Неправильная работа клавиатуры

У меня такая проблема: по нажатию на "ключ ввода" клавиатура исчезает из первого поля, а во втором не появляется. Когда я вручную перехожу во второе поле и ввожу текст, у меня не получается убрать клавиатуру. Мне нужно, чтобы по нажатию на "ключ ввода" курсор перемещался из первого поля во второй, а затем, после заполнения второго поля, убиралась клавиатура. Мой код:

extension RegistrationViewController: UITextFieldDelegate {
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        
        if nameTextField.text!.count > 3, passwordTextField.text!.count > 5 {
           
            nameTextField.enablesReturnKeyAutomatically = true
            nameTextField.resignFirstResponder()
           
            passwordTextField.enablesReturnKeyAutomatically = true
            passwordTextField.resignFirstResponder()
            
        }
        
        else if nameTextField.text!.count > 3 {
           
            nameTextField.enablesReturnKeyAutomatically = true
            nameTextField.resignFirstResponder()
          
            passwordTextField = textField
            passwordTextField.resignFirstResponder()
        }
        
       
        else if passwordTextField.text!.count > 5 {
            passwordTextField.enablesReturnKeyAutomatically = true
            passwordTextField.resignFirstResponder()
        }
       
        else {
            
            preconditionFailure("Недостаточно символов")
        }
        
        return (nameTextField.text!.count > 3 && passwordTextField.text!.count > 5)
    }
  
   
}

Ответы (1 шт):

Автор решения: Andrew

Для обработки нажатий можно например вызывать такой метод:

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    self.switchBasedNextTextField(textField)
    return true
}

который в свою очередь будет вызывать метод перехода:

private func switchBasedNextTextField(_ textField: UITextField) {
    switch textField {
    case self.username:
        self.firstname.becomeFirstResponder()
    case self.firstname:
        self.lastname.becomeFirstResponder()
    case self.lastname:
        self.email.becomeFirstResponder()
    default:
        self.email.resignFirstResponder()
    }
}

текстовые поля для примера привел. Вы насколько я понял вызываете убирание курсора resignFirstResponder но ничего не привязываете. Вот результат работы кода:

введите сюда описание изображения

вот тут первоисточник-туториали подобный вопрос на enSO

→ Ссылка