web-dev-qa-db-fra.com

clavier fait action clé Swift iOS ne fonctionne pas

Je suis nouveau dans stackoverflow, j'ai un problème avec le nouveau code Swift . J'ai personnalisé le bouton de retour du clavier avec "Terminé", mais lorsque j'appuie dessus, ne touchez rien cacher le clavier sur le toucher? J'ai ajouté un code (trouvé sur ce site) pour masquer le clavier lorsque vous tapez quelque part, pas sur le clavier, mais je ne peux pas le personnaliser en appuyant sur le bouton "terminé" ... Merci avant !!

23
Giorgio Nocera

Vous devez implémenter la méthode déléguée appelée lorsque vous appuyez sur le bouton done:

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

Vous devez également vous conformer au protocole UITextFieldDelegate:

class MyViewController: UIViewController,UITextFieldDelegate // I assume you override UIview controller class if not add UITextFieldDelegate to your class

La dernière chose est de configurer votre classe pour être un délégué de champ de texte:

textField.delegate = self
69
Greg
textField.delegate = self

peut être remplacé par enter image description here

Cela créera les connexions nécessaires entre votre vue, son composant, et fera fonctionner la méthode textFieldShouldReturn comme prévu.

11
Stephane Paquet

Les méthodes de protocole ont de nouvelles signatures (Swift 4.1). C'EST À DIRE:

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

Les méthodes de protocole étant facultatives, l'utilisation d'une signature incorrecte échouera de manière silencieuse.

0
MatthiasFranz