How to retrieve only font style(Bold,italic,Bold Italic) from font panel(NSFontPanel) and color?
I am retrieving a value from NSFontPanel
, which changes the font family, style of text. But I want only Font Style and color separately that I have selected from NSFontPanel
.
I am not getting how to get that.
NSFont *font =[fontmanager selectedFont];
string =[font fon开发者_如何学PythontName];
st = [font pointSize];
color =[TextEntered textColor];
In string variable I am getting Font family(e.g.Arial) and Font style(e.g. Bold). but I want these values separately.
And in color variable I only get black color.
I am not able to understand where I am wrong in getting color,and what function I used for getting font style..
To get the style, you would use [fontmanager traitsOfFont: font]
. As for the color, I think you want to get the text as an NSAttributedString
and then get the value for the attribute NSForegroundColorAttributeName
.
Edit to add: Assuming that your TextEntered variable is NSTextField*, use something like this:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
For strikethrough, use NSStrikethroughStyleAttributeName
and for underline use NSUnderlineStyleAttributeName
.
精彩评论