ATSApplicationFontsPath использует путь [NSBundle mainbundle] в качестве базового пути, поэтому он не работает, когда папка ресурсов там не находится (например, для плагинов приложений).
В моем плагине Какао мне нужно загрузить пользовательские шрифты, используя CTFontManagerRegisterFontsForURL
#import <Cocoa/Cocoa.h>
static void FGDActivateFont(NSString *fontName)
{
// Can't make ATSApplicationFontsPath in Info.plist work for plugins (non-standard Resources path)
NSArray *availableFonts = [[NSFontManager sharedFontManager] availableFonts];
if (![availableFonts containsObject:fontName]) {
NSURL *fontURL = [[FGDRapidCart bundle] URLForResource:fontName withExtension:@"ttf" subdirectory:@"Fonts"];
assert(fontURL);
CFErrorRef error = NULL;
if (!CTFontManagerRegisterFontsForURL((__bridge CFURLRef)fontURL, kCTFontManagerScopeProcess, &error))
{
CFShow(error);
}
}
}
int main(int argc, char *argv[])
{
@autoreleasepool
{
FGDActivateFont(@“FontAwesome”);
}
return NSApplicationMain(argc, (const char **)argv);
}
Кредиты: https://github.com/OneSadCookie/Extendaword/blob/master/Extendaword/main.m