C-V*_*rel 7 macos xcode custom-font swift
我尝试在我的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)
}
Run Code Online (Sandbox Code Playgroud)
小智 22
由于"应用程序字体资源路径"现在是XCode 7.3.1中的字符串类型,我似乎无法找到将数组用于多种字体的方法,因此我使用了".".在Info.plist中:
Application fonts resource path String .
Run Code Online (Sandbox Code Playgroud)
这似乎可以动态地在Resources文件夹中获取我的所有自定义字体,例如使用Swift
labelText.font = NSFont(name: "DS-Digital", size: 48)
Run Code Online (Sandbox Code Playgroud)
但是,要在XCode设计模式下看到它(从下拉菜单中选择字体),我需要先将字体添加到Font Book中.
但是,动态方法不需要Font Book :)
And*_*rew 11
ATSApplicationFontsPath适用于 macOS:
ATSApplicationFontsPath (
String- macOS ) 标识字体文件或字体目录在包的资源目录中的位置。如果存在,macOS 会在指定路径激活字体以供捆绑的应用程序使用。字体仅为捆绑的应用程序激活,而不是为整个系统激活。路径本身应指定为包资源目录的相对目录。例如,如果字体目录位于路径 /Applications/MyApp.app/Contents/Resources/Stuff/MyFonts/ 中,您应该为此键的值指定字符串 Stuff/MyFonts/。
macOS 应用说明:
UIAppFonts (
Array- iOS ) 指定应通过正常机制提供的任何应用程序提供的字体。数组中的每一项都是一个字符串,其中包含位于应用程序包中的字体文件(包括文件扩展名)的名称。系统加载指定的字体,并在应用程序运行时使它们可供应用程序使用。iOS 3.2 及更高版本支持此密钥。
通过直接将应用程序字体资源路径设置为我的字体文件的名称,我完全幸运地解决了这个问题。

小智 7
对于那些字体系列被称为My-Custom-Font-Family之类的人:请注意,在代码中,您应该像这样实例化自定义字体:NSFont(name: "MyCustomFontFamily-Bold", size: 20)
空格和“-”被忽略,字体类型写在“-”之后。我没有在任何文档中看到这一点,并花了几个小时试图弄清楚 wtf 是错误的。另外,如果您想获取所有可用字体的列表,您可以使用此代码
for font in NSFontManager.shared.availableFonts {
print(font)
}
Run Code Online (Sandbox Code Playgroud)
首先将您想要嵌入 OSX 应用程序的所需字体添加到您的项目中:

然后单击项目 > 信息,然后单击加号并添加新键“应用程序字体资源路径”,然后在其中键入字体名称,创建字符串数组:

现在您可以选择自定义字体,字体名称将显示在那里,您仍然需要使用字体簿使其在 Xcode 中可用。

| 归档时间: |
|
| 查看次数: |
7008 次 |
| 最近记录: |