Comment puis-je rejeter le clavier iOS?
J'ai un UITextfield que je voudrais fermer le clavier pour. Je n'arrive pas à faire disparaître le clavier n'importe quel code que j'utilise.
Vous devez vous connecter pour publier un commentaire.
J'ai un UITextfield que je voudrais fermer le clavier pour. Je n'arrive pas à faire disparaître le clavier n'importe quel code que j'utilise.
Vous devez vous connecter pour publier un commentaire.
Ici, deuxième alinéa, de l'affichage et Masquage de la partie Clavier.
Si vous avez plusieurs champs de texte et ne sais pas lequel est le premier intervenant (ou tout simplement vous n'avez pas accès aux champs de texte à partir de là où vous êtes l'écriture de ce code), vous pouvez appeler
endEditing:
sur la vue parent contenant les champs de texte.En vue du contrôleur de la méthode, il devrait ressembler à ceci:
Le paramètre force le champ de texte à la démission du premier intervenant statut. Si vous utilisez un délégué pour effectuer la validation et voulais tout arrêter jusqu'à ce que le contenu du champ de texte ont été valide, vous pouvez également le code comme ceci:
La
endEditing:
méthode est beaucoup mieux que de dire à la personne les champs de texte àresignFirstResponder
, mais pour une raison que je n'ai même jamais découvert jusqu'à récemment.Il y a des cas où aucun champ de texte est le premier intervenant mais le clavier à l'écran.
Dans ces cas, les méthodes ci-dessus ne parviennent pas à fermer le clavier.
Un exemple de comment s'y rendre:
Dans ce cas, vous devez également demander l'avis du contrôleur pour quitter le mode d'édition:
Je vous suggère d'ajouter et d'action sur votre fichier d'en-tête:
Et dans la mise en œuvre, écrire quelque chose comme ceci:
Dans la PLUME de fichiers, vous connecter à partir de la UITextFiled pour le Propriétaire du Fichier sur l'option DidEndOnExit. De cette façon, lorsque vous appuyez sur la touche retour, le clavier disparaît.
Espère que cela aide!
Dans votre vue-contrôleur YourViewController.h fichier, assurez-vous de mettre en œuvre UITextFieldDelegate protocole :
Puis, dans YourViewController.m de fichier, de mettre en œuvre la méthode instance suivante:
J'ai découvert un cas où
endEditing
etresignFirstResponder
échouer. Ce qui a fonctionné pour moi dans ces cas.ObjC
Swift
Si vous ne savez pas qui textField est le premier répondeur vous pouvez le trouver. J'utilise cette fonction:
Ensuite dans votre code, appelez le:
Cela va démissionner en particulier d'un champ de texte
De démissionner un champ de texte utilisez code ci-dessous
De démissionner un champ de texte dans l'application
Cette approche est propre et garanti de fonctionner car la keyWindow est, par définition, la vue de la racine de tous les points de vue de l'affichage d'un clavier (source):
comme un dernier recours
UITextField
qui a été premier intervenant, mais une liste montrant des suggestions ont également été active. Fermer le clavier avec le bouton masquer ne pas masquer le clavier en quelque sorte. Ce code m'a aidé ici, merci! 🙂Vous venez de remplacer
yourTextFieldName
, vous l'avez deviné! votre textfield. Cela permet de fermer le clavier.appeler cette méthode (methodName) avec didEndOnExit
Pour Swift 3
Vous pouvez masquer le clavier comme ceci:
Si vous souhaitez masquer le clavier lorsque l'utilisateur presse la "intro" bouton, vous avez à mettre en oeuvre les
UITextFieldDelegate
méthode:3 Simple & Swift étapes
Ajouter
UITextFieldDelegate
à votre classe comme ci-dessous:dans la classe de mise en œuvre, ajouter la fonction de délégué
textFieldShouldEndEditing:
:et comme une dernière étape, définissez votre
UITextField
(s) délégué(s) à soi-même, en quelque part appropriée. Par exemple, à l'intérieur de laviewDidLoad
fonction:Maintenant, chaque fois que l'utilisateur frappe la touche retour, le clavier sera rejeter.
J'ai préparé un exemple extrait de trop, vous pouvez vérifier de ici.
Mis en place le "A la Fin de la Sortie À" l'événement dans Xcode (clic droit sur votre champ de texte).
Réaliser cette méthode: