Это - вопрос новичка об обработке шрифта в Какао. У меня есть семейство шрифтов, например, Verdana, который имеет следующие гарнитуры: Регулярный, Полужирный, Курсивный, и Полужирный курсив. Я знаю, что те гарнитуры существуют, так как они доступны в панели Fonts.
Это работает:
NSFont *regular = [NSFont fontWithName:@"Verdana" size:75];
NSFont *bold = [NSFont fontWithName:@"Verdana-Bold" size:75];
NSFont *italic = [NSFont fontWithName:@"Verdana-Italic" size:75];
Это не работает:
NSFont *boldItalic = [NSFont fontWithName:@"Verdana-Bold Italic" size:75];
Что самый простой путь состоит в том, чтобы получить версию Полужирного курсива данного семейства шрифтов?
Это работает:
NSFontManager *fontManager = [NSFontManager sharedFontManager];
NSFont *boldItalic = [fontManager fontWithFamily:@"Verdana"
traits:NSBoldFontMask|NSItalicFontMask
weight:0
size:75];
Verdana-BoldItalic
.
(Фактическое название варианта шрифта с полужирным курсивом зависит от семейства, а у некоторых шрифтов полужирный курсив отсутствует. Используйте NSFontDescriptor
с -fontDescriptorWithSymbolicTraits:
, чтобы получить точный полужирный курсив.)
См. NSFontManager и -convertFont:toHaveTrait:
Для более подробной информации я бы посоветовал прочитать Руководство по работе со шрифтами и особенно раздел под названием Преобразование шрифтов вручную.
Обратите внимание, что используемый вами шрифт должен иметь какую-то версию с запрашиваемыми признаками, иначе вы получите обратно шрифт, но без запрашиваемого признака.
Если вы хотите добавить черту курсива к шрифту, у которого ее нет, посмотрите: