Как извлечь только стиль шрифта (смелый, курсивый, смелый курс) из панели шрифта (NSFONTPANEL) и цвета?
-
25-09-2019 - |
Вопрос
Я извлекаю ценность от NSFontPanel
, что меняет шрифт семьи, стиль текста. Но я хочу только стиль шрифта и цвета отдельно, что я выбрал из NSFontPanel
.
Я не понимаю, как это получить.
NSFont *font =[fontmanager selectedFont];
string =[font fontName];
st = [font pointSize];
color =[TextEntered textColor];
В строкой переменной я получаю Fant Family (Egarial) и стиль шрифта (например, смелый). Но я хочу эти ценности отдельно.
А в цветовой переменной я получаю только черный цвет.
Я не могу понять, куда я ошибаюсь в том, чтобы получить цвет, и какую функцию я использовал для получения стиля шрифта ..
Решение
Чтобы получить стиль, вы бы использовали [fontmanager traitsOfFont: font]
. Отказ Что касается цвета, я думаю, вы хотите получить текст как NSAttributedString
а затем получить значение для атрибута NSForegroundColorAttributeName
.
Редактировать, чтобы добавить: Предполагая, что ваша текстерна переменной является NStextField *, используйте что-то вроде этого:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
Для Strichethrough используйте NSStrikethroughStyleAttributeName
и для подчеркивания использования NSUnderlineStyleAttributeName
.