我尝试在我的swift应用程序中使用自定义字体,但它们无法加载。
我复制了我的资源文件夹中的fonts.ttf,并在Info.plist中添加了名称在"应用程序提供的字体"键。
我尝试使用"应用字体资源路径"来自.plist的密钥,但没有结果。 这是我用来应用我的字体的代码。我尝试过:" MyFont.ttf" ,和" MyFont"
@IBOutlet weak var label:NSTextField!
override func awakeFromNib() {
label.font = NSFont(name: "MyFont.ttf", size: 15)
}
答案 0 :(得分:20)
As"应用程序字体资源路径"现在是XCode 7.3.1中的字符串类型,我似乎无法找到一种方法将数组用于多种字体,我使用了#34;。"在Info.plist中:
Application fonts resource path String .
这似乎可以动态地在Resources文件夹中获取所有自定义字体,例如使用Swift
labelText.font = NSFont(name: "DS-Digital", size: 48)
但是,要在XCode设计模式下查看(从下拉菜单中选择字体),我需要先将字体添加到Font Book。
但是,动态方法不需要Font Book:)
答案 1 :(得分:2)
首先将要嵌入OSX应用程序的所需字体添加到项目中:
然后点击项目>信息,然后单击加号并添加一个新密钥"应用程序字体资源路径"并在那里输入字体名称,创建一个字符串数组:
现在您可以选择自定义字体并在那里显示字体名称,您仍然需要使用字体书才能在Xcode中使用它。
答案 2 :(得分:2)
ATSApplicationFontsPath
is for macOS:
ATSApplicationFontsPath (
String
- macOS )标识了 包的资源目录中的字体文件或字体目录。 如果存在,macOS会在指定路径处激活字体以供以下人员使用 捆绑的应用。字体仅为捆绑的应用程序激活,并且 不适用于整个系统。路径本身应指定为 捆绑软件的Resources目录的相对目录。例如, 如果字体目录位于路径中 /Applications/MyApp.app/Contents/Resources/Stuff/MyFonts/,您应该 为该键的值指定字符串Stuff / MyFonts/。
macOS应用说明:
UIAppFonts (
Array
- iOS )指定应由应用程序提供的所有字体 可以通过正常机制获得。中的每个项目 array是一个字符串,其中包含字体文件的名称(包括 位于应用程序捆绑包中的文件扩展名)。系统 加载指定的字体并使它们可供应用程序使用 该应用程序何时运行。iOS 3.2及更高版本支持此键。
答案 3 :(得分:1)
尝试从属性检查器中的界面构建器执行此操作。
答案 4 :(得分:0)
通过直接设置应用程序字体资源路径作为我的字体文件的名称,我完全解决了这个问题。
答案 5 :(得分:0)
对于那些被称为我的自定义字体家庭之类的字体的人:
请注意,在代码中应实例化自定义字体,如下所示:NSFont(name: "MyCustomFontFamily-Bold", size: 20)
空格和“-”被忽略,字体类型写在“-”之后。我在任何文档中都没有看到这一点,并花了几个小时试图找出wtf是错误的。
另外,如果要获取所有可用字体的列表,可以使用此代码
for font in NSFontManager.shared.availableFonts {
print(font)
}