Cómo recuperar sólo estilo de fuente (negrita, cursiva, negrita cursiva) del panel de la fuente (NSFontPanel) y el color?
-
25-09-2019 - |
Pregunta
Me estoy recuperando un valor de NSFontPanel
, que cambia la familia de la fuente, el estilo del texto. Pero quiero único estilo y color de fuente separado que he seleccionado de NSFontPanel
.
No estoy recibiendo cómo conseguir eso.
NSFont *font =[fontmanager selectedFont];
string =[font fontName];
st = [font pointSize];
color =[TextEntered textColor];
-
En variable de cadena que estoy recibiendo Familia de fuentes (e.g.Arial) y el estilo de fuente (por ejemplo. Negrita). pero quiero que estos valores por separado.
-
Y en color variable solo me dan el color negro.
No soy capaz de entender dónde estoy equivocado en conseguir el color, y cuál es la función que utilicé para conseguir estilo de fuente ..
Solución
Para conseguir el estilo, se usaría [fontmanager traitsOfFont: font]
. En cuanto al color, creo que se desea obtener el texto como una NSAttributedString
y luego obtener el valor para el atributo NSForegroundColorAttributeName
.
Editar para añadir: Suponiendo que la variable de TextEntered es NSTextField *, uso algo como esto:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
Para tachado, uso NSStrikethroughStyleAttributeName
y para el uso de subrayado NSUnderlineStyleAttributeName
.