كيفية استرداد نمط الخط (الجريء ، المائل ، الجريء المائل) من لوحة الخط (NSFONTPANEL) واللون؟
-
25-09-2019 - |
سؤال
أنا أسترجع قيمة من NSFontPanel
, الذي يغير عائلة الخط ، أسلوب النص. لكني أريد فقط نمط الخط واللون بشكل منفصل الذي اخترته منه NSFontPanel
.
أنا لا أحصل على كيفية الحصول على ذلك.
NSFont *font =[fontmanager selectedFont];
string =[font fontName];
st = [font pointSize];
color =[TextEntered textColor];
في متغير السلسلة ، أحصل على عائلة الخط (Egarial) وأسلوب الخط (على سبيل المثال Bold). لكني أريد هذه القيم بشكل منفصل.
وفي متغير اللون أحصل على اللون الأسود فقط.
لا أستطيع أن أفهم أين أنا مخطئ في الحصول على اللون ، وما هي الوظيفة التي استخدمتها للحصول على نمط الخط ..
المحلول
للحصول على النمط ، ستستخدم [fontmanager traitsOfFont: font]
. أما بالنسبة للون ، أعتقد أنك تريد الحصول على النص ك NSAttributedString
ثم احصل على قيمة السمة NSForegroundColorAttributeName
.
تحرير لإضافة: على افتراض أن متغير Textentered الخاص بك هو nstextfield*، استخدم شيئًا كهذا:
NSAttributedString* theText = [TextEntered attributedStringValue];
NSColor* theColor = (NSColor*)[theText attribute: NSForegroundColorAttributeName
atIndex: 0 effectiveRange: NULL ];
للضرب ، استخدم NSStrikethroughStyleAttributeName
وللاستخدام السطحي NSUnderlineStyleAttributeName
.