我试图将自定义字体添加到今天的扩展名中。但字体总是返回nil。
1.将字体文件添加到todayWidget:
答案 0 :(得分:14)
可能是因为您忘了在.plist
文件中添加密钥。
将键Fonts provided by application
添加到新行。为您添加的每种字体添加项目。
答案 1 :(得分:0)
我有同样的问题并通过安装字体解决了。以下是步骤:
右键单击Project Navigator中的.otf文件 - >点击查找器中显示 - >双击查找器窗口中的字体,您将看到"安装"右下角的按钮,点击安装,然后检查你的应用程序。
希望这有效。
答案 2 :(得分:0)
答案 3 :(得分:0)
我在处理应用扩展程序时遇到了同样的问题。这里的一些答案帮助我解决了这个问题,但我想说清楚,也许更容易让其他开发人员面对同样的问题:
虽然字体在应用程序中工作,但它们没有在扩展中,因为
导致崩溃UIFont(name: name.rawValue, size: size)
返回nil
。
字体位于应用程序本身的Info.plist
文件中,但不在应用程序扩展程序的Info.plist
中。因此,我必须使用密钥Info.plist
手动向扩展程序Fonts provided by application
添加一行,然后输入应用程序Info.plist
文件的所有字体,直到匹配为止。然后它对我有用。
答案 4 :(得分:0)
我也遇到了这个问题,我发现targeting font to my target
并将fonts providing by application
置于plist中。但是当我试图检索字体时仍然没有。
可能是因为您使用的字体名称错误。
例如(我遇到的问题)
我拖入项目名称的字体为trenolt.otf
但使用此名称UIFont(name: "trenolt", size: 14)
获取
根据Adding a Custom Font to Your App By Developer Documentation
我打印出所有字体系列和名称
for family in UIFont.familyNames.sorted() {
let names = UIFont.fontNames(forFamilyName: family)
print("Family: \(family) Font names: \(names)")
}
然后我进入控制台
["TruenoLt", "TruenoRg"]
现在使用打印的名称
UIFont(name: "TruenoLt", size: 14)
获取
<UICTFont: 0x7fbc39a168b0> font-family: "Trueno"; font-weight: normal; font-style: normal; font-size: 14.00pt