47 votes

Comment définissez-vous l'ordre de tabulation dans iOS?

Est-il un moyen (soit au bureau de l'IB ou code) de définir l'ordre de tabulation entre les champs de texte en vue?

Notez que je ne parle pas du champ de formulaire suivant après le retour (ou "Suivant") est pressée, de nombreux claviers bluetooth ont une touche de tabulation, qui semble cycle à travers les champs de complètement différent de l'ordre. Dans mon cas particulier, cet ordre ne correspond pas à les champs de la position de la vue ou même l'ordre dans lequel les champs ont été ajoutés. Modifier le fichier xib par la main pour modifier la NSNextKeyView ne semble pas faire une différence soit.

Personne ne sait comment faire pour changer cet ordre?

4voto

sprocket Points 56

Je suis intéressé à résoudre le même problème, bien que jusqu'à présent, l'ordre par défaut, ce qui semble être de gauche à droite, puis de haut en bas, est celui que je veux.

J'ai testé l'hypothèse que le curseur se déplace à la profondeur de premier ordre dans l'arborescence de sous-vues et superview, mais c'est pas vrai. Modification de l'ordre des sous-vues sans changer leur emplacement n'a pas changé l'ordre des champs traversés par onglet presses.

Un peut-fonctionnalité utile est que le champ de texte du délégué textFieldShouldBeginEditing méthode semble être appelée pour chaque champ de texte dans la fenêtre de l'application. Si cela renvoie PAS, alors le champ de texte ne sera pas choisi, donc si vous pouvez définir l'ordre de votre choix et de ne faire que le droit de retour OUI, qui pourrait résoudre votre problème.

3voto

vrk Points 81

La touche de Tabulation comportement dans ios sera comme suit:- lorsque u appuyez sur la touche tab sur le clavier externe - le contrôle de la traverse sur tous les objets textfield l'écran en appelant seulement shouldbeginediting méthode où sa valeur de retour est également déterminée par Applewhich cant remplacer. Après l'analyse de tous les domaines qu'il calculer le plus proche de x positionné Textfield par rapport à la vue de l'offset à partir du courant de Champ de texte et ensuite le plus proche de Y Positionné Champ.

Aussi ne peut pas être fait n'importe quoi jusqu'à ce que le contrôle vient de textFieldDidBeginEditing méthode pour tout le domaine après sur la touche TAB.

Raison pour apple restriction à ce qu'il peut vouloir suivre les directives de l'INTERFACE utilisateur, où à côté de répondeur de champ doit être positionné au plus près de Champ plutôt qu'à un autre champ .

3voto

AlleyGator Points 704

0voto

Milk78 Points 173

Vous pouvez le faire en définissant la balise pour chaque champ de texte et en le gérant dans la méthode textfieldShouldReturn.

Voir cet article de blog à ce sujet: http://iphoneincubator.com/blog/windows-views/how-to-create-a-data-entry-screen

0voto

Bob de Graaf Points 1054

Je n'ai aucune expérience, mais j'ai deux suggestions qui pourraient fonctionner.

  1. Définissez les étiquettes dans le bon ordre, en incrémentant de haut en bas.
  2. L'autre est que, puisque les champs de texte ne se chevauchent probablement pas, vous les avez peut-être ajoutés dans un ordre différent de celui de la vue dans IB. Vous pouvez essayer de les ajouter exactement dans le bon ordre à la vue et voir si cela fait une différence?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X