11
votes

Le clavier d'iPhone n'apparaît pas lorsque vous entrez un uitxtfield

Ce doit être une sorte de novice de Blunder dont je ne peux tout simplement pas voir, et je serais reconnaissant d'astuce quant à quoi vérifier ou regarder.

J'ai suivi un didacticiel iPhone qui a un uitxtfield, en veillant à ce que j'ai connecté Iboutlet pour le champ de texte et qu'il semble compiler correctement (aucune erreur ou avertissement). Mais lorsque je l'exécute sous le simulateur, puis cliquez sur le champ, je ne reçois pas le clavier, je ne peux donc pas entrer dans le champ.

J'ai essayé de chercher sur le site pour des questions similaires, et tout ce que j'ai trouvé est quelques questions où le développeur tente de configurer une interface utilisateur complexe avec plusieurs contrôleurs, et celui qui semblait être le même problème, mais L'affiche originale a simplement dit qu'il l'a résolu en démarrant un nouveau projet et en portant le code. J'aimerais trouver une solution réelle, je n'ai donc pas à essayer de reconstruire au hasard des projets lorsque ce problème revient.

merci!


1 commentaires

Avoir le même problème, j'ai déjà 4 applications sur l'AppStore et c'est la première fois que je le vois! Me rend fou.


5 Réponses :


3
votes

Quel est le délégué de l'Uitextfield connecté? Vous êtes-vous assuré que le délégué fonctionne, en particulier - (bool) TextfieldBegineting: (Uitextfield *) Textfield renvoie la bonne chose (dans ce cas oui)?


1 commentaires

Le tutoriel ne demande pas de connexion à un délégué, juste un à un iboutlet dans le contrôleur d'affichage. J'ai parcouru un autre tutoriel qui a également un Uitextfield sans délégué, simplement connecté au contrôleur d'affichage, Iboutlet, et celui-ci a travaillé. Si c'est une aide, le didacticiel que j'ai de la difficulté à partir de "Début du développement de l'iPhone 3" par Mark et Lamarche.



1
votes

Je ne sais pas si tel est le problème de quelqu'un d'autre, mais j'utilisais un champ de texte dans un contrôleur d'onglets affiché de manière modale et j'ai ajouté le geste de secoue dans mon contrôleur d'affichage principal. Cela signifiait malheureusement que je définissais [Self devenez-lafirespondeur] dans la fenêtre ViewDidLoad. Dans ce cas, lorsque ma vue modale est affichée, il ne devenait pas le premier répondant et que le clavier n'a donc pas affiché.

Pour résoudre ce problème, j'ai ajouté [auto-résigneur auto] juste avant d'appeler l'affichage modal et tout va bien une fois de plus! Yay (n'a pris que cinq jours pour comprendre cela).


0 commentaires

1
votes

fondamentalement la seule chose que vous devez faire est de déclarer le champ de texte dans le .h

iboutlet uitextfield * textfield

Déclarez avec le même nom dans la propriété

@property (nonatomic, conserver) uitextfield * Textfield;

alors assurez-vous de vous synthétiser dans le .m

@synthesize Textfield;

Ensuite, vous devez lier le champ dans le constructeur d'interface


0 commentaires

6
votes

Assurez-vous que les conteneurs parent sont Interaction utilisateur activés vérifiés. Ce n'est pas suffisant pour que les contrôles individuels soient vérifiés. Le UIView peut inadvertir cette désélectionnée.

Une chose que vous devriez vérifier est de vous assurer que la vue contenant (le uIView contient toutes les commandes), qui est l'icône de vue de l'interface Builder NIB Viewer, a Interaction utilisateur activée vérifié. Si le conteneur parent n'a pas été vérifié, même si les commandes individuelles le font, vous verrez ce comportement.


1 commentaires

Merci! Mon point de vue avait une interaction utilisateur activée non cochée. Je travaille à travers le livre Apay et je décoché que pour la vue quand j'aurais dû m'assurer qu'il était décoché pour la vue d'image que j'ai ajoutée.



17
votes

Juste pour couvrir toutes vos bases lors de la dépannage de cela, assurez-vous que ce n'est pas le simulateur iOS qui cause ceci. Je ne voyais pas le clavier apparaître lors de la saisie d'une vue UitextView également et il s'avère que le simulateur vous permet de basculer entre l'affichage du clavier virtuel et vous devez simplement utiliser le clavier de votre ordinateur portable.

Vous basculez entre les deux via:

matériel > clavier > clavier logiciel bascule

ou appuyez sur cmd + k .

(ma source: https://stackoverflow.com/a/24401535/1700540 )

Assurez-vous que vous n'avez pas fait à tort le simulateur pour utiliser votre clavier physique! ... comme si j'avais


1 commentaires

Le clavier matériel semble être vérifié lorsque le simulateur est sélectionné et je saisi cmd-k pensant que je nettoie les températures Xcode. Au lieu de cela, le simulateur capture la CMD-K et active le clavier matériel. Entrer à nouveau dans le simulateur ou à l'aide de l'option Menu dans le clavier du clavier «Matériel> Simulator), comme indiqué ci-dessus le transforme. J'espère que cela t'aides.