Xcode 9自定义字体无法工作

12

在 Xcode 9 中无法使用自定义字体。但是,如果我在 Xcode 8 中打开相同的项目,则自定义字体按预期工作。

我运行了这段代码以确保字体显示出来:

NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
}

我已确保字体在 plist 中,检查了目标成员身份,并在复制 Bundle 资源部分中。

这是 Xcode 的 bug 吗?


你没有提到你发布的代码的结果。而且需要定义“无法工作”的具体情况,不要仅仅使用这些词语。 - rmaddy
你尝试过这个了吗? - Jeremy
1
是的,在Xcode 8中使用确切的字体名称。 - MobileMon
1
我尝试删除字体并重新添加它们,还重启了Xcode。 - MobileMon
1
问题仍然存在,我在这里的评论中列出了错误的字体名称。尽管在Xcode 8中可以使用Helvetica-Condensed-Bold字体,但在Xcode 9中仍无法使用。 - MobileMon
显示剩余10条评论
5个回答

5
我遇到了这个问题,,
确保点击您的字体文件夹,以确保它们已包含在“目标成员资格”中。 输入图像说明

3

我也在使用Xcode 9.2时遇到了同样的问题。

我直接将自定义字体文件夹添加到我的应用程序中。如果您直接添加字体文件夹,则可能会遇到此类问题。它不会在Build Phases选项卡下的Copy Bundle Resources中显示您的字体文件。为解决此问题,我采用了以下步骤:

  1. 首先,在捆绑包中选择您的font.ttf文件,然后在右侧的File Inspector下选中您的项目的Target Membership选项。

  2. 转到项目目标,然后在Build Phases下进入Copy Bundle Resources,通过单击+按钮添加所有字体。(确保您仅添加了font.ttf文件,而不是包含该font.ttf文件的文件夹)

  3. 还要确保在将它们拖入您的项目时正确地添加了文件。不要忘记检查Copy items if needed选项。最重要的是在您的info.plist文件中添加Fonts provided by application键,后跟您在项目中使用的所有自定义字体。

希望这有所帮助。愉快编码 :)


1

如果编译器位于蓝色目录文件夹内,这会给它带来问题(显然),我将字体文件移出该文件夹,在构建后问题得到解决(GRR!)


1
我在我的项目中使用Xcode 9解决了自定义字体问题。以下是步骤:
1. 将字体添加到bundle中。 2. 在plist文件中添加字体名称,位于“应用提供的字体”下。 3. 转到目标->构建阶段并添加您的字体文件。
现在,您可以运行您的项目。它将显示在您的应用程序中的自定义字体。

1
在使用Xcode 9打开项目后,我遇到了同样的问题,通过重新包含字体解决了它(删除它们,清理项目,再次包含它们,构建项目)。
虽然您已经将它们选中为目标,但无法选择自定义字体,您可以尝试指定本地化(在目标检查上方)为“base”或其他内容,这样它们就会在Storyboards中可见,但无法在代码中加载(至少在我的情况下)。然而,重新包含是更好的方法,它使一切都正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接