Ваша проблема в том, что вы не делегируют TextField для того, чтобы использовать этот метод. Во-первых, ваш класс должен включать UITextFieldDelegate
протокол:
class yourClass: UIViewController, UITextFieldDelegate{ ... }
И в viewDidLoad
добавить это так:
scoreText.delegate = self
И тогда вы должны изменить это:
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
к этому:
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return true
}
Окончательный код:
class yourClass: UIViewController, UITextFieldDelegate{
@IBOutlet weak var scoreText: UITextField!
override func viewDidLoad(){
super.viewDidLoad()
scoreText.delegate = self
}
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing()
return true
}
Если это не работает, проблема не textFieldShouldReturn
функции. Проверьте розетки.
Это все, что вам нужно сделать, чтобы она работала –
У этой проблемы: http://i.imgur.com /PAWVdrb.png Кстати, зачем мне делегировать TextField, а не метку, кнопку и т. Д.? – stevetheipad
@stevetheipad 1 - потому что функция ** textFieldShouldReturn ** включена в ** UITextFieldDelegate **; 2 - попробуйте добавить свой аргумент: ** self.view.endEditing (true) **, я, вероятно, пропустил это в своем ответе –