10
votes

Masquer le clavier d'entrée sur iPhone sans connaître le premier répondeur?

J'ai vu Cette question , mais la question Comment savoir quel TextView est le premier répondeur? Cette question avait l'air prometteuse pour personnaliser Le premier répondant, mais il s'avère que cela appelle des API privées. Y a-t-il un moyen de masquer le clavier ou de comprendre le premier répondeur comme le-one-one-wash-the-clavier?


3 Réponses :


4
votes

[TextView Isfiresponder] devrait vous dire si c'est le premier répondeur. Je suppose que vous pouvez simplement faire boucler tous les champs de texte de votre classe pour vérifier s'il s'agit du premier répondeur.

ou vous pouvez simplement appeler Résignfiresponder sur chaque champ de texte, et cela fonctionnera toujours.


1 commentaires

En fait, la deuxième pensée, la deuxième partie de votre réponse me fait comprendre que grâce à mon application bien conçue :), je peux juste faire ça.



3
votes

Je crois que vous devriez choisir quelque chose pour devenir le premier répondeur, quelque chose qui ne fait probablement rien seul, et appelez - [uirepondervenwirespientre] dessus. Cela fonctionnerait bien avec un UIViewController ou UiWindow (que vous pouvez passer par - [uIView window] , je pense) parce que ceux-ci auraient les chaînes de répondeur les plus similaires et feraient le feutre actuel de la main -peponder statut, rejetant le clavier, mais n'apporterait pas non plus le clavier, car ce ne serait pas un Uitextfield.


0 commentaires

27
votes

C'est facile:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];


3 commentaires

Je devrai vérifier cela avant de le marquer comme accepté. D'autre part, si vous êtes lié à des documents, ce serait mieux pour moi et ainsi.


UiWindow est une sous-classe d'UIView; Il hérite de de la méthode de uIView.


Travaillé parfaitement pour moi - mon cas d'utilisation était que j'ai 4 différentes tableViews sur un UIView qui ont leur propriété cachée allumée et désactivée par une contrectrice uisegsedContrôleur qui ne fait qu'un apparaît à la fois. - J'avais besoin d'obtenir le clavier pour partir si une personne a changé à une vue de table différente.