Come recuperare solo lo stile del carattere (grassetto, corsivo, grassetto corsivo) dal pannello Font (NSFontPanel) e il colore?
-
25-09-2019 - |
Domanda
Io sono il recupero di un valore da NSFontPanel
, che cambia la famiglia di font, lo stile del testo. Ma voglio solo Stile del Carattere e colore a parte che ho scelto da NSFontPanel
.
Non ricevo come ottenere questo.
NSFont *font =[fontmanager selectedFont];
string =[font fontName];
st = [font pointSize];
color =[TextEntered textColor];
-
In variabile stringa sto ottenendo famiglia di font (e.g.Arial) e lo stile dei caratteri (es. Grassetto). ma voglio questi valori separatamente.
-
E nella variabile colore ottengo solo colore nero.
Io non sono in grado di capire dove ho sbagliato a ottenere il colore, e quale funzione che ho usato per ottenere lo stile del carattere ..
Soluzione
Per ottenere lo stile, si usa [fontmanager traitsOfFont: font]
. Per quanto riguarda il colore, penso che si desidera ottenere il testo come un NSAttributedString
e quindi ottenere il valore per l'NSForegroundColorAttributeName
attributo.
Modifica per aggiungere: Supponendo che la variabile TextEntered è NSTextField *, uso qualcosa di simile:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
Per barrato, l'uso NSStrikethroughStyleAttributeName
e per uso sottolineatura NSUnderlineStyleAttributeName
.