如何从字体面板(NSFontPanel)和颜色中仅检索字体样式(粗体,斜体,粗体斜体)?

时间:2010-08-31 05:48:29

标签: objective-c cocoa nsfont nsfontpanel

我正在从NSFontPanel检索一个值,该值会更改字体系列,文本样式。但我只想要从NSFontPanel中选择的字体样式和颜色。

我无法得到它。

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. 在字符串变量中,我得到Font系列(例如Arial)和Font样式(例如Bold)。但我想分开这些价值观。

  2. 在颜色变量中我只得到黑色。

  3. 我无法理解我在获取颜色方面的错误,以及我用来获取字体样式的功能。

1 个答案:

答案 0 :(得分:0)

要获得样式,您可以使用[fontmanager traitsOfFont: font]。至于颜色,我想您希望将文本作为NSAttributedString获取,然后获取属性NSForegroundColorAttributeName的值。

编辑添加:假设您的TextEntered变量是NSTextField *,请使用以下内容:

NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
    atIndex: 0 effectiveRange: NULL ];

对于删除线,请使用NSStrikethroughStyleAttributeName并使用下划线NSUnderlineStyleAttributeName