2010-05-30 6 views
5

J'ai une étiquette NSTextField qui contient du texte. La couleur et la taille sont différentes des valeurs par défaut. (Le texte est un peu plus grand et vert) Maintenant, je dois être en mesure de sélectionner le texte dans l'étiquette afin que le clic sur les liens hypertexte intégrés dans le texte attribué. Cela fonctionne bien; cependant, lors de la sélection du texte, le format du texte revient aux valeurs par défaut (une police noire plus petite).NSTextField (Label) Texte Attribué: Sélectionnez

Est-il possible d'arrêter ce comportement afin que mon style soit conservé lorsque l'utilisateur clique (sélectionne du texte) sur un label?

EDIT: Pour l'enregistrement, j'ai une autre étiquette avec le texte blanc qui ne change pas de couleur quand choisi, taille seulement.

Répondre

2

OK. Après d'autres recherches sur les raisons pour lesquelles la couleur blanche était "collante" et pourquoi le vert ne l'était pas, j'ai découvert que tous les attributs de texte définis dans Interface Builder ne restent pas après la sélection. Par conséquent, la solution consiste à toujours appeler setAttributedStringValue: avec un NSAttributedString qui a des attributs que vous voulez vous assurer rester pendant la sélection sur votre étiquette.

+2

Merci, mais pourriez-vous s'il vous plaît joindre un extrait peu de code? Je dois faire exactement cela --- mettre un texte (cyan, pas vert) plus grand sur un label, avec un lien hypertexte ... –

+1

N'a pas tout à fait comprendre la solution. Je suis en train de mettre une chaîne via 'setAttributedStringValue:' mais je suis toujours confronté au problème. – NSRover

0

J'ai rencontré le même problème. La réponse acceptée ne l'a malheureusement pas corrigée. Mon style de texte était toujours en train d'être sélectionné même si j'avais défini le attributedStringValue.

Merci à la réponse in this question, j'ai pu en partie résoudre le problème en appelant:

label.allowsEditingTextAttributes = true

Questions connexes