Хорошо, я думаю, что для начинающих вещи могут быть немного запутанными.Я думаю, что правильный ответ - это смесь всего вышеперечисленного, по крайней мере, в Swift4.
Либо создайте расширение, либо используйте ViewController, в котором вы хотели бы использовать это, но обязательно реализуйте UITextFieldDelegate.Для повторного использования я нашел, что проще использовать расширение:
extension UIViewController : UITextFieldDelegate {
...
}
, но альтернатива также работает:
class MyViewController: UIViewController {
...
}
Добавить метод textFieldShouldReturn (в зависимости отваш предыдущий параметр, либо в расширении, либо в вашем ViewController)
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
return textField.endEditing(false)
}
В вашем методе viewDidLoad установите для делегата текстового поля значение self
@IBOutlet weak var myTextField: UITextField!
...
override func viewDidLoad() {
..
myTextField.delegte = self;
..
}
Это все.Теперь, когда вы нажимаете return
, должен вызываться textFieldShouldReturn
.