Проблемы с жирным и курсивным шрифтами — Cocoa

#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, шрифты по-прежнему обычные.

В чем здесь ошибка?