Как получить только стиль шрифта (полужирный, курсив, полужирный курсив) из панели шрифтов (NSFontPanel) и цвет?

Я получаю значение из NSFontPanel, которое изменяет семейство шрифтов, стиль текста. Но мне нужен только стиль шрифта и цвет отдельно, которые я выбрал из NSFontPanel.

Я не понимаю, как это получить.

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. В строковой переменной я получаю семейство шрифтов (например, Arial) и стиль шрифта (например, жирный). но я хочу эти значения отдельно.

  2. И в переменной цвета я получаю только черный цвет.

Я не могу понять, где я ошибаюсь в получении цвета и какую функцию я использовал для получения стиля шрифта.


person Greshi Gupta    schedule 31.08.2010    source источник


Ответы (1)


Чтобы получить стиль, вы должны использовать [fontmanager traitsOfFont: font]. Что касается цвета, я думаю, вы хотите получить текст как NSAttributedString, а затем получить значение атрибута NSForegroundColorAttributeName.

Изменить, чтобы добавить: Предполагая, что ваша переменная TextEntered имеет значение NSTextField*, используйте что-то вроде этого:

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

Для зачеркивания используйте NSStrikethroughStyleAttributeName, а для подчеркивания используйте NSUnderlineStyleAttributeName.

person JWWalker    schedule 31.08.2010
comment
пример получения цвета. и спасибо за ответ .. это работает для получения стиля шрифта. - person Greshi Gupta; 31.08.2010
comment
и не могли бы вы также сказать мне, как получить зачеркивание и подчеркивание из NSFontPanel. - person Greshi Gupta; 31.08.2010