How to retrieve only font style(Bold,italic,Bold Italic) from font panel(NSFontPanel) and color?

1k views Asked by At

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 fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. In string variable I am getting Font family(e.g.Arial) and Font style(e.g. Bold). but I want these values separately.

  2. 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..

1

There are 1 answers

2
JWWalker On BEST ANSWER

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.