无法将自定义字体加载到OSX项目中但是...进入iOS项目?

时间:2016-02-13 19:13:47

标签: objective-c macos cocoa uifont nsfont

我可以在iOS项目中加载自定义字体,并使用以下命令在可用字体上查看:

NSArray *fontFamilies = [UIFont familyNames];

for (int i=0; i<[fontFamilies count]; i++)
{
    NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
}

但是当我尝试将字体加载到OSX项目中时,我在显示字体时无法在列表中看到它:

NSLog(@"%@",[[[NSFontManager sharedFontManager] availableFontFamilies] description]);

我使用:Unable to set custom font for the UILabel in XCode来安装iOS项目的字体,并假设它应该与OSX项目的方法相同。

字体文件的链接位于捆绑包资源Info.plist文件中(添加:应用程序提供的字体),文件位于支持文件中。

我错过了什么吗? THX

1 个答案:

答案 0 :(得分:0)

我以编程方式解决了它(但更喜欢上面链接中的iOS方法):

NSString* path = [[NSBundle mainBundle] pathForResource:@"Symbola" ofType:@"ttf"];
NSURL* fontsURL = [NSURL fileURLWithPath:path];

FSRef fsRef;
CFURLGetFSRef((CFURLRef)fontsURL, &fsRef);
ATSFontActivateFromFileReference(&fsRef, kATSFontContextLocal, kATSFontFormatUnspecified,
                                              NULL, kATSOptionFlagsDefault, NULL);