كيفية استرداد نمط الخط (الجريء ، المائل ، الجريء المائل) من لوحة الخط (NSFONTPANEL) واللون؟

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

سؤال

أنا أسترجع قيمة من NSFontPanel, الذي يغير عائلة الخط ، أسلوب النص. لكني أريد فقط نمط الخط واللون بشكل منفصل الذي اخترته منه NSFontPanel.

أنا لا أحصل على كيفية الحصول على ذلك.

NSFont *font  =[fontmanager selectedFont];
     string =[font fontName];
     st = [font pointSize];
    color =[TextEntered textColor];
  1. في متغير السلسلة ، أحصل على عائلة الخط (Egarial) وأسلوب الخط (على سبيل المثال Bold). لكني أريد هذه القيم بشكل منفصل.

  2. وفي متغير اللون أحصل على اللون الأسود فقط.

لا أستطيع أن أفهم أين أنا مخطئ في الحصول على اللون ، وما هي الوظيفة التي استخدمتها للحصول على نمط الخط ..

هل كانت مفيدة؟

المحلول

للحصول على النمط ، ستستخدم [fontmanager traitsOfFont: font]. أما بالنسبة للون ، أعتقد أنك تريد الحصول على النص ك NSAttributedString ثم احصل على قيمة السمة NSForegroundColorAttributeName.

تحرير لإضافة: على افتراض أن متغير Textentered الخاص بك هو nstextfield*، استخدم شيئًا كهذا:

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

للضرب ، استخدم NSStrikethroughStyleAttributeName وللاستخدام السطحي NSUnderlineStyleAttributeName.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top