2010-02-25 4 views
5

Je suis capable de travailler avec NSTokenField, il est facile à utiliser .. mais je veux vos suggestions sur comment puis-je le personnaliser comme il est dans les champs "To/CC" dans mac mail ie. quand non. de jetons dans un champ de jetons augmente la hauteur du champ "To" augmente jusqu'à une certaine limite puis un défilement vertical commence à apparaître!comment personnaliser NSTokenField comme dans "To/CC" des champs dans le courrier mac?

Par défaut, lorsque nous utilisons un champ symbolique ni la hauteur ni s'augmenté changeurs verticale apparaît! J'ai essayé différentes combinaisons dans IB mais je n'ai pas pu obtenir la fonctionnalité du courrier mac.

Quelqu'un peut-il me suggérer une solution pour cela ??

Répondre

3

Vous devrez sous-classe NSTokenField pour obtenir la fonctionnalité que vous voulez. Soyez sûr et appelez setWraps: OUI.

Lorsque le contenu des changements sur le terrain de jetons, vous aurez à calculer la taille requise de votre champ jeton et redimensionner vous-même. Pareil avec l'ajout d'une barre de défilement. Une fois la taille du champ de jeton atteinte, vous insérez une vue de défilement dans le champ. Inversement, lorsque le recalcul de la taille du champ de jeton est inférieur à la taille critique, vous supprimez la vue de défilement.

Ceci est une quantité considérable de travail (je l'ai trouvé) pour le faire fonctionner correctement. Apple dit que le NSTokenField "fournit une édition à jetons similaire au champ d'adresse dans l'application Mail", mais ce n'est vraiment pas du tout similaire puisqu'il n'a pas de redimensionnement intégré et que le glisser-déposer est problématique pour tout sauf le texte.

+0

merci ... pour votre réponse :) Je vais certainement essayer! – Devarshi

2

j'ai pu y parvenir en utilisant IFVerticallyExpandingTextField. Parce que NSTokenField hérite de NSTextField, j'ai fait en sorte que IFVerticallyExpandingTextField hérite de NSTokenField, puis sous-classe IFVerticallExpandingTextField pour implémenter tout ce que j'avais besoin de faire avec ma version de NSTokenField.

Cela devrait juste être une baisse. Tout de suite, il devrait commencer à travailler.

+0

Le lien est mort ... – markjs

+0

Le changement de 'propriété' de cocoadev.com l'a laissé un peu bancal. Néanmoins, un simple site "google: cocoadev.com" trouve le code (très mal formaté): http://cocoadev.com/IFVerticallyExpandingTextField –

Questions connexes