Comment récupérer uniquement le style de police (gras, italique, gras et italique) à partir du panneau de police (NSFontPanel) et la couleur?
-
25-09-2019 - |
Question
Je suis en train de récupérer une valeur de NSFontPanel
, qui change la famille de la police, le style du texte. Mais je veux seulement Style de police et couleur séparément que j'ai choisi de NSFontPanel
.
Je ne reçois pas comment obtenir cela.
NSFont *font =[fontmanager selectedFont];
string =[font fontName];
st = [font pointSize];
color =[TextEntered textColor];
-
Dans la variable de chaîne Je reçois la famille de polices (e.g.Arial) et le style de la police (par exemple. Gras). mais je veux que ces valeurs séparément.
-
Et dans la variable de couleur que je ne reçois que la couleur noire.
Je ne suis pas en mesure de comprendre où je me trompe à obtenir la couleur, et quelle fonction je pour obtenir le style de police ..
La solution
Pour obtenir le style, vous pouvez utiliser [fontmanager traitsOfFont: font]
. Quant à la couleur, je pense que vous voulez obtenir le texte comme un NSAttributedString
puis obtenir la valeur pour l'NSForegroundColorAttributeName
d'attribut.
Modifier pour ajouter: Si l'on suppose que votre variable TextEntered est NSTextField *, utilisez quelque chose comme ceci:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
Pour biffés, l'utilisation NSStrikethroughStyleAttributeName
et pour underline NSUnderlineStyleAttributeName
.