web-dev-qa-db-fra.com

Comment masquer le clavier lorsque la touche de retour est frappée - Swift

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
}

 enter image description here

7
stevetheipad

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.

22

Essaye ça

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}
2
Mochi