2010-05-30 17 views
5

Ho un'etichetta NSTextField che ha attribuito testo al suo interno. Il colore e la dimensione sono diversi dai valori predefiniti. (Il testo è un po 'più grande e verde) Ora, ho bisogno di essere in grado di selezionare il testo nell'etichetta così come il clic i collegamenti ipertestuali incorporati nel testo attribuito. Questo funziona bene; tuttavia, quando si seleziona il testo, il formato del testo ritorna ai valori predefiniti (un carattere nero più piccolo).NSTextField (etichetta) Testo attribuito: selezionare

È comunque necessario arrestare questo comportamento in modo che il mio stile venga conservato quando l'utente fa clic (seleziona il testo) su un'etichetta?

MODIFICA: per la registrazione, ho un'altra etichetta con testo bianco che non cambia colore quando selezionato, solo dimensione.

risposta

2

Ok. Dopo ulteriori ricerche sul motivo per cui il colore bianco stava "incollato" e sul perché il green non lo era, ho scoperto che gli attributi di testo impostati in Interface Builder non non rimangono dopo la selezione.

Pertanto, la soluzione è chiamare sempre setAttributedStringValue: con una stringa NSAttributo con attributi che si desidera assicurarsi durante la selezione sull'etichetta.

+2

Grazie, ma la prego di allegare un piccolo frammento di codice? Devo fare esattamente questo --- inserire un testo più grande (ciano, non verde) su un'etichetta, con un collegamento ipertestuale ... –

+1

Non ho capito bene la soluzione. Sto impostando la stringa tramite 'setAttributedStringValue:' ma sto ancora affrontando il problema. – NSRover

0

Mi sono imbattuto nello stesso problema. La risposta accettata non lo ha risolto purtroppo. Il mio stile di testo stava ancora cambiando quando veniva selezionato anche se avevo impostato lo attributedStringValue.

Grazie alla risposta in this question, ho potuto in parte risolvere il problema chiamando:

label.allowsEditingTextAttributes = true

Problemi correlati