Xcode 11 (macOS Catalina) 上未显示自定义字体

Custom Fonts not showing on Xcode 11 (macOS Catalina)

我在将下拉菜单中的自定义字体加载到故事板中的 select 字体时遇到问题,我有 poppins 字体和 MarvinVisionsBig。我已经将它们添加为目标成员、捆绑资源并将它们添加到 plist 中,并且它们已经安装在系统中。我尝试了一切,但似乎没有任何效果。

使用此显示字体时会打印字体:

for family: String in UIFont.familyNames {
    print(family)
    for names: String in UIFont.fontNames(forFamilyName: family) {
        print("== \(names)")
    }
}

Console:

DropDown:

Fonts:

Bundle resources:

Plist:

我认为这是新 Xcode 版本或来自 Catalina 的编译器的错误,现在解决此问题的方法是在将它们添加到 Fonts provided by application 时指定您的字体扩展名.plist 文件

像这样Poppins-Bold.otfPoppins-Bold.ttf

我已经试过了并且有效

不幸的是,对我来说唯一的解决办法是全新安装 mac os catalina。现在在 xCode 界面生成器中一切正常。

如果我将标签更改为属性文本,我能够在列表中看到该字体,并且一旦切换回普通文本它仍然存在,但我还没有弄清楚如何解决这个问题而没有完全重新安装我大约 3 周前做过。

更改您的项目位置并进入 activity 监控安静 Xcode 和模拟器然后它可以工作

  1. 从捆绑资源中删除 info.plist(->构建阶段 ->复制捆绑资源)

  2. 添加字体功能和权限(->签名和功能 -> +功能 ->select 'Fonts' -> 检查 'Install Fonts' 和 'Use Installed Fonts')

图片:

这是升级到 Xcode 11.4 的已知问题,似乎只影响升级到 Catalina 而不是全新安装的用户。

理论上,在您的 Info.plist 中设置字体并设置字体权利应该可行,但我无法让它配合。不推荐使用我的解决方案,因为它可能会损坏您的 Xcode,但对于那些花费数小时且不想回滚的人来说,这也是一种快速修复方法。

这是一个无代码解决方案。您需要做的是 从 Xcode 11.3.1.

编译 13.4
  1. 探索 Xcode 11.4 beta 的包内容并从 Contents > Developer > Platforms > iPhoneOS > DeviceSupport.
  2. 复制标签为“13.4”的文件夹
  3. 将其粘贴到 Xcode 11.3.1 中的同一目录位置。
  4. 在 11.3.1 中打开您的 project/workspace。
  5. CMD+Shift+K 清理并再次运行。字体现在应该按预期运行。
  6. 如果问题仍然存在,请从您的 device/simulator 中删除该应用,然后重试第 3 步和第 4 步。

尝试删除字体的引用,然后再次将它们添加到项目中,对我来说很有效,就这么简单。

在 Catalina 上使用 Xcode 12.4,我遇到了这个问题。我发现我直接从下载文件夹中将字体文件添加到我的项目中,而忽略了将它们复制到应用程序目录中。我删除了文件,使用 Finder 从外部将它们复制到我的应用程序目录中,然后重新添加它们。然后成功了!