Как я создаю NSFont, который является и Полужирным и Курсивным?

Это - вопрос новичка об обработке шрифта в Какао. У меня есть семейство шрифтов, например, 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];

Что самый простой путь состоит в том, чтобы получить версию Полужирного курсива данного семейства шрифтов?

9
задан Arne Evertsson 19 March 2010 в 12:37
поделиться

3 ответа

Это работает:

NSFontManager *fontManager = [NSFontManager sharedFontManager];
NSFont *boldItalic = [fontManager fontWithFamily:@"Verdana"
                                          traits:NSBoldFontMask|NSItalicFontMask
                                          weight:0
                                            size:75];
21
ответ дан 4 December 2019 в 06:40
поделиться

Verdana-BoldItalic .

(Фактическое название варианта шрифта с полужирным курсивом зависит от семейства, а у некоторых шрифтов полужирный курсив отсутствует. Используйте NSFontDescriptor с -fontDescriptorWithSymbolicTraits: , чтобы получить точный полужирный курсив.)

7
ответ дан 4 December 2019 в 06:40
поделиться

См. NSFontManager и -convertFont:toHaveTrait:

Для более подробной информации я бы посоветовал прочитать Руководство по работе со шрифтами и особенно раздел под названием Преобразование шрифтов вручную.

Обратите внимание, что используемый вами шрифт должен иметь какую-то версию с запрашиваемыми признаками, иначе вы получите обратно шрифт, но без запрашиваемого признака.

Если вы хотите добавить черту курсива к шрифту, у которого ее нет, посмотрите:

Как добавить курсив Lucida Grande в мое приложение?

8
ответ дан 4 December 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: