#objective-c #macos #cocoa
#objective-c #macos #cocoa
Вопрос:
Я пытаюсь заставить приложение cocoa рисовать жирные или / и курсивные шрифты. Вот код, который я использую:
NSFontTraitMask fontStyle = 0;
if (m_bBold)
fontStyle |= NSBoldFontMask;
if (m_bItalic)
fontStyle |= NSItalicFontMask;
NSFontManager* fontManager = [NSFontManager sharedFontManager];
NSFont* font = [fontManager fontWithFamily:@"Helvetica" traits:fontStyle weight:5 size:12];
Насколько я понимаю, все, что делает FontManager, это просто преобразование в правильное название шрифта.
Так что все работает нормально. Он преобразует Helvetica в Helvetica-Bold или Verdana в Verdana-Bold.
Однако отображаемый шрифт не всегда соответствует тому, что я просил. Например, это работает с Verdana (я вижу это жирным шрифтом). Но это не работает с Helvetica. Хотя название преобразовано в Helvetica-Bold, шрифты по-прежнему обычные.
В чем здесь ошибка?