0

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

NSArray *fontFamilies = [UIFont familyNames];

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

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

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

我使用: 无法在 XCode 中为 UILabel 设置自定义字体来安装 iOS 项目的字体,并假设它应该与 OSX 项目的方法相同。

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

我错过了什么吗?谢谢

4

1 回答 1

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);
于 2016-02-13T20:34:35.553 回答