Votre problème est que vous ne l'avez pas déléguer un textField afin d'utiliser cette méthode. Tout d'abord, votre classe doit inclure le protocole UITextFieldDelegate
:
class yourClass: UIViewController, UITextFieldDelegate{ ... }
Et viewDidLoad
ajouter ceci aussi bien:
scoreText.delegate = self
Et vous devez changer ceci:
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
à ceci:
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return true
}
Code final:
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
}
Si cela ne fonctionne pas, le problème n'est pas la fonction textFieldShouldReturn
. Veuillez vérifier vos connexions de sortie.
C'est tout ce que vous avez à faire pour que cela fonctionne –
Avoir ce problème: http://i.imgur.com /PAWVdrb.png En passant, pourquoi ai-je besoin de déléguer TextField et non une étiquette, un bouton, etc.? – stevetheipad
@stevetheipad 1 - parce que la fonction ** textFieldShouldReturn ** est incluse dans ** UITextFieldDelegate **; 2 - essayez d'ajouter votre argument: ** self.view.endEditing (true) **, j'ai probablement manqué cela dans ma réponse –