Мой 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 объект создан. Я предполагаю, что это свойства только для чтения, и я не могу установить их, только читать их. Я правильно это читаю?

Если это так, что будет предпочтительным способом указания общего шрифта с засечками? Или я должен выбрать определенный и иметь дело с пользователями, возможно, не имеющими доступ к этому шрифту?

0 ответов

Другие вопросы по тегам