我遵循了一堆教程,但没有用:我只是想向macOS应用添加自定义字体。
我基本上尝试的是:
添加的.ttf
字体文件到我的项目:目标组成情况,我也确保文件是使用拷贝制作Copy Files
中Bundle Phases
。编译后,我可以看到所有文件都在捆绑包中。这样看来效果很好。
Info.plist
:我为要添加的每个字体文件(值)添加Fonts provided by application
并创建了一个项目myFont.tff
。
我确保使用正确的字体名称。我在系统上安装了字体,并使用Interface Builder配置了Label,以便它使用所需的字体。我印了它的价值print(myLabel.font.fontName)
。
令人困惑:如果将我要添加到应用程序的完全相同的字体文件安装在系统Fontbook中并激活,则一切正常。当我停用它时,它不起作用。对我来说,这表明我使用的是正确的字体名称。
我找到ATSApplicationFontsPath
并尝试将其添加到中Info.plist
,但没有使用路径(由文档推荐)或类似.
(似乎对某些人有用的)值确定。
感谢任何帮助!
我偶然解决了我的问题。
我注意到在Bundle文件中,我的字体被包含了两次:它们被复制到“资源”目录以及在“复制文件”构建阶段中声明的子路径。我从项目中删除了字体,再次添加了它们(无需检查“目标成员身份”),并在构建阶段中添加了它们,以便将它们仅复制到子路径中。之后,它起作用了。
附加条款:
原来,这Fonts provided by application
是仅iOS的属性,因此macOS实施不需要它。
另外,ATSApplicationFontsPath
不需要任何斜杠。例如:Fonts
应该工作正常。
我很难找到.ttf字体文件的正确名称,有时会发现一些奇怪的现象:NSFont从字体家族中随机选择了字体(常规,中号,粗体...),而没有任何代码更改。通过使用.otf文件,我也可以解决该问题。