This is a beginner's question about font handling in Cocoa. I have a font family, e.g. Verdana, that has the following typefaces: Regular, Bold, Italic, and Bold Italic. I know those typefaces exist since they are available in the Fonts panel.
This works:
NSFont *regular = [NSFont fontWithName:@"Verdana" size:75];
NSFont *bold = [NSFont fontWithName:@"Verdana-Bold" size:75];
NSFont *italic = [NSFont fontWithName:@"Verdana-Italic" size:75];
This does not work:
NSFont *boldItalic = [NSFont fontWithName:@"Verdana-Bold Italic" size:75];
What is the simplest way to get the Bold Italic version of a given font family?
See NSFontManager and -convertFont:toHaveTrait:
For more detailed information, I would suggest reading the Font Handling Guide and specifically the section titled Converting Fonts Manually.
Note, that the font you are using needs to have some version of it with the traits you are asking for, otherwise, you will get back a font, but without the requested trait.
If, eventually, you are seeking to add an italic trait to a font that doesn't have one, check out:
How do I get Lucida Grande italic into my application?
This works:
NSFontManager *fontManager = [NSFontManager sharedFontManager];
NSFont *boldItalic = [fontManager fontWithFamily:@"Verdana"
traits:NSBoldFontMask|NSItalicFontMask
weight:0
size:75];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With