I have a ttf font that has 4 styles with names MyFont, MyFont Bold, MyFont Italic and MyFont Bold Italic.
In L&F getTypefaceForFont() I have:
Typeface::Ptr MyLookAndFeel::getTypefaceForFont (const Font& font)
{
if (myTypeface != nullptr && font.getTypefaceName() == myTypeface->getName())
return myTypeface;
else if (myTypefaceBoldItalic != nullptr && font.getTypefaceName() == myTypefaceBoldItalic->getName())
return myTypefaceBoldItalic;
else if (myTypefaceItalic != nullptr && font.getTypefaceName() == myTypefaceItalic->getName())
return myTypefaceItalic;
else if (myTypefaceBold != nullptr && font.getTypefaceName() == myTypefaceBold->getName())
return myTypefaceBold;
return LookAndFeel::getTypefaceForFont (font);
}
In Windows it works ok because myTypeface->getName() returns MyFont, MyFont Bold etc, but on Mac it returns the family name MyFont only. Changing the name specifier constant solves this.