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

StackOverflow https://stackoverflow.com/questions/3606329

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top