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.otf
或Poppins-Bold.ttf
我已经试过了并且有效
不幸的是,对我来说唯一的解决办法是全新安装 mac os catalina。现在在 xCode 界面生成器中一切正常。
如果我将标签更改为属性文本,我能够在列表中看到该字体,并且一旦切换回普通文本它仍然存在,但我还没有弄清楚如何解决这个问题而没有完全重新安装我大约 3 周前做过。
更改您的项目位置并进入 activity 监控安静 Xcode 和模拟器然后它可以工作
从捆绑资源中删除 info.plist(->构建阶段 ->复制捆绑资源)
添加字体功能和权限(->签名和功能 -> +功能 ->select 'Fonts' -> 检查 'Install Fonts' 和 'Use Installed Fonts')
图片:
这是升级到 Xcode 11.4 的已知问题,似乎只影响升级到 Catalina 而不是全新安装的用户。
理论上,在您的 Info.plist 中设置字体并设置字体权利应该可行,但我无法让它配合。不推荐使用我的解决方案,因为它可能会损坏您的 Xcode,但对于那些花费数小时且不想回滚的人来说,这也是一种快速修复方法。
这是一个无代码解决方案。您需要做的是 从 Xcode 11.3.1.
编译 13.4
- 探索 Xcode 11.4 beta 的包内容并从
Contents > Developer > Platforms > iPhoneOS > DeviceSupport
. 复制标签为“13.4”的文件夹
- 将其粘贴到 Xcode 11.3.1 中的同一目录位置。
- 在 11.3.1 中打开您的 project/workspace。
- CMD+Shift+K 清理并再次运行。字体现在应该按预期运行。
- 如果问题仍然存在,请从您的 device/simulator 中删除该应用,然后重试第 3 步和第 4 步。
尝试删除字体的引用,然后再次将它们添加到项目中,对我来说很有效,就这么简单。
在 Catalina 上使用 Xcode 12.4,我遇到了这个问题。我发现我直接从下载文件夹中将字体文件添加到我的项目中,而忽略了将它们复制到应用程序目录中。我删除了文件,使用 Finder 从外部将它们复制到我的应用程序目录中,然后重新添加它们。然后成功了!
我在将下拉菜单中的自定义字体加载到故事板中的 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.otf
或Poppins-Bold.ttf
我已经试过了并且有效
不幸的是,对我来说唯一的解决办法是全新安装 mac os catalina。现在在 xCode 界面生成器中一切正常。
如果我将标签更改为属性文本,我能够在列表中看到该字体,并且一旦切换回普通文本它仍然存在,但我还没有弄清楚如何解决这个问题而没有完全重新安装我大约 3 周前做过。
更改您的项目位置并进入 activity 监控安静 Xcode 和模拟器然后它可以工作
从捆绑资源中删除 info.plist(->构建阶段 ->复制捆绑资源)
添加字体功能和权限(->签名和功能 -> +功能 ->select 'Fonts' -> 检查 'Install Fonts' 和 'Use Installed Fonts')
图片:
这是升级到 Xcode 11.4 的已知问题,似乎只影响升级到 Catalina 而不是全新安装的用户。
理论上,在您的 Info.plist 中设置字体并设置字体权利应该可行,但我无法让它配合。不推荐使用我的解决方案,因为它可能会损坏您的 Xcode,但对于那些花费数小时且不想回滚的人来说,这也是一种快速修复方法。
这是一个无代码解决方案。您需要做的是 从 Xcode 11.3.1.
编译 13.4- 探索 Xcode 11.4 beta 的包内容并从
Contents > Developer > Platforms > iPhoneOS > DeviceSupport
. 复制标签为“13.4”的文件夹
- 将其粘贴到 Xcode 11.3.1 中的同一目录位置。
- 在 11.3.1 中打开您的 project/workspace。
- CMD+Shift+K 清理并再次运行。字体现在应该按预期运行。
- 如果问题仍然存在,请从您的 device/simulator 中删除该应用,然后重试第 3 步和第 4 步。
尝试删除字体的引用,然后再次将它们添加到项目中,对我来说很有效,就这么简单。
在 Catalina 上使用 Xcode 12.4,我遇到了这个问题。我发现我直接从下载文件夹中将字体文件添加到我的项目中,而忽略了将它们复制到应用程序目录中。我删除了文件,使用 Finder 从外部将它们复制到我的应用程序目录中,然后重新添加它们。然后成功了!