Essayer de cacher le clavier iOS lorsque la touche de retour est enfoncée, mais au lieu de cela, il s’arrête et me donne l’erreur vue dans l’image. Voici le code que j'utilise:
@IBOutlet weak var scoreText: UITextField!
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
Votre problème est que vous n'avez pas délégué un textField pour utiliser cette méthode. Tout d’abord, votre classe doit inclure le protocole UITextFieldDelegate
:
class yourClass: UIViewController, UITextFieldDelegate { ... }
Et dans la méthode viewDidLoad()
, ajoutez également ceci:
scoreText.delegate = self
Et puis vous devez changer cela:
func textFieldShouldReturn(_ scoreText: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
pour ça:
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()
. S'il vous plaît vérifier vos connexions de sortie.
Essaye ça
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}