2012-01-04 4 views
0

J'écris une application iOS MonoTouch. J'ai lu beaucoup d'articles sur ResignFirstResponder et j'utilise cela.Clavier de démontage MonoTouch (en quelque sorte)

Mon application est une application de vue de table typique. J'ai fait ma propre vue de cellule de table personnalisée. Les contrôles UITextField qui provoquent la première apparition du pavé numérique se trouvent tous dans la cellule du tableau personnalisé.

Actuellement, je l'ai de sorte que si vous appuyez sur l'arrière-plan de la cellule, j'appelle ResignFirstResponder sur tous les champs de texte. Cela semble fonctionner, mais ce n'est pas intuitif. J'ai eu un nouveau testeur bêta hier soir et il a tapoté sur l'un des champs de texte et le clavier est apparu et il était perdu sur la façon de s'en débarrasser. Après que je lui ai dit de juste taper sur le fond, il va maintenant bien, mais évidemment, je veux une solution qui est évidente et ne nécessite pas de dire à tout le monde comment cela fonctionne. J'ai lu un article sur un moyen d'ajouter un bouton DONE au clavier, mais il ressemblait à un hack total et même cassé quand 3.2.1 est sorti et je ne veux pas avoir à se soucier de ma rupture de l'application quand un nouveau système d'exploitation sort.

Suggestions?

Répondre

1

Je garderais l'arrière-plan cliquez sur> ResignFirstResponder que vous avez déjà, mais ajoutez-y. Curieux, quel bouton avez-vous placé dans le coin inférieur droit du clavier? Il existe des options pour afficher les boutons Terminé, Rechercher, Aller, Suivant, etc. qui peuvent être configurés pour ResignFirstResponder. Choisissez le bouton qui a du sens dans votre situation.

Vous pouvez vous connecter au bouton en bas à droite en définissant un rappel sur UITextField.ShouldReturn et en appelant ResignFirstResponder. Vous pouvez simplement renvoyer false (cette valeur de retour permet d'autoriser les sauts de ligne dans votre UITextField).

J'ai trouvé un exemple de here de hooking up ShouldReturn.

+0

Je vais essayer. Je ne savais pas que vous pouviez régler ce bouton. J'avais lu à propos du ShouldReturn, mais je ne m'étais pas rendu compte que vous pouviez changer la raison de ce bouton. Actuellement, il est défini pour être un retour arrière ou supprimer (appelez-le soit). – user856232

+0

Ceci est une bonne réponse, mais pas la réponse complète. Cela fonctionne pour le clavier alpha et les nombres et les claviers de ponctuation. Cela ne fonctionne PAS pour le clavier numérique. Le clavier du pavé numérique n'a pas de place pour le bouton Terminé. Avez-vous une autre idée pour cela? – user856232

+0

Désolé, je ne savais pas que ce n'était pas sur le pavé numérique. Il existe un InputAccessoryView pour attacher vos propres contrôles en haut du clavier, similaire à ce que Safari fait. Voir ce post: http://stackoverflow.com/questions/4175212/how-to-add-a-uitoolbar-on-top-of-uikeyboard-using-monotouch – jonathanpeppers

Questions connexes