Мой NSFontDescriptor не имеет никакого эффекта; в чем дело?
Хорошо, я пытаюсь использовать курсив и засечку на NSAttributedString
, но по какой-то причине черты шрифта не имеют абсолютно никакого эффекта. Я думаю, что я использовал их правильно (NSFontDescriptor
Ссылка не особо хорошо написана, на мой взгляд, поэтому я точно не знаю).
NSMutableAttributedString *pellString = [[NSMutableAttributedString alloc]
initWithString:@"x2 – Dy2 = N"];
NSFontSymbolicTraits varMask = NSFontModernSerifsClass | NSFontItalicTrait;
NSDictionary *varSymbolic = [NSDictionary dictionaryWithObject:
[NSNumber numberWithUnsignedInteger:varMask]
forKey:NSFontSymbolicTrait];
NSDictionary *varAttrs = [NSDictionary dictionaryWithObject:varSymbolic
forKey:NSFontTraitsAttribute];
NSFontDescriptor *varDesc = [NSFontDescriptor fontDescriptorWithFontAttributes:varAttrs];
NSFont *variables = [NSFont fontWithDescriptor:varDesc
size:24];
[pellString addAttribute:NSFontAttributeName value:variables range:NSMakeRange(0, 12)];
Когда я NSLog variables
, NSFont
объект, я получаю следующее:
"LucidaGrande 24.00 pt. P [] (0x7f9f43e18970) fobj=0x7f9f43e18b40, spc=7.59"
Другими словами, NSFont
не создавал шрифт с засечками, как я просил, и не создавал курсивный шрифт (и я пробовал каждый из них независимо, без другого). Ведение журнала NSFontDescriptor
дали пары ключ-значение, которые я там вставил, поэтому проблема должна быть на том этапе, когда NSFont
объект создан. Я предполагаю, что это свойства только для чтения, и я не могу установить их, только читать их. Я правильно это читаю?
Если это так, что будет предпочтительным способом указания общего шрифта с засечками? Или я должен выбрать определенный и иметь дело с пользователями, возможно, не имеющими доступ к этому шрифту?