Создайте UITextField
подкласс и переопределите hitTest point
метод и верните nil
class CustomTextField: UITextField {
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
return nil
}
}
Используйте пользовательский класс в контроллерах представления. В viewDidAppear
используйте becomeFirstResponder
в первом текстовом поле, в методе textFieldShouldReturn
переходите к следующему текстовому полю. Обязательно установите делегат для всех текстовых полей.
class ViewController: UIViewController, UITextFieldDelegate {
let textField1 = CustomTextField()
let textField2 = CustomTextField()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
textField1.delegate = self
textField1.returnKeyType = .next
view.addSubview(textField1)
textField2.delegate = self
textField2.returnKeyType = .send
view.addSubview(textField2)
//add constraints or set frame
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
textField1.becomeFirstResponder()
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == textField1 {
textField2.becomeFirstResponder()
}
return true
}
}