"SF Mono"字体的NSFont名称是什么?



在Xcode 8中引入了名为'SF Mono'的新字体。

这是一种字体,我个人觉得非常易读,我想在NSTextView中使用它。但是,要为NSTextView设置字体,则需要使用NSFont对象。问题是我似乎无法通过NSFontManager.shared().availableFonts在可用字体列表中找到SF Mono字体。

有谁知道SF Mono的程序名称是什么初始化的NSFont (NSFont(name: String, size: CGFloat))为其字体?

"SF Mono"不是系统字体。你不能在Terminal, Console和Xcode之外选择SF Mono,因为它没有安装到系统中。

"SF Mono"在终端是一个自定义字体/Applications/Utilities/Terminal.app/Contents/Resources/Fonts/

同样,Console中的"SF Mono"是/Applications/Utilities/Console.app/Contents/Resources/Fonts中的另一个自定义字体

同样,Xcode中的"SF Mono"也是/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/中的自定义字体

当然,你不能在不违反苹果版权许可的情况下将SF Mono与你的程序捆绑在一起:

考虑到您同意以下条款,Apple Inc.("Apple")将此SF Mono字体("Apple字体")授权给您。如果您不同意这些条款,请勿使用Apple字体。

您只能将Apple Font与Apple品牌应用程序(包括但不限于Xcode、Terminal)结合使用。app和Console.app。您不得在任何其他软件应用程序或程序或其他产品中嵌入或使用Apple Font ,也不得使用Apple Font创建、开发、展示或以其他方式分发任何内容、文档、艺术品或任何其他工作产品。

您只能将Apple字体用于本许可所述的目的或Apple以书面形式明确允许的其他目的。

如果用户手动安装了字体,可以找到它的姓氏 SF Mono ,或字体名称 SFMono-Regular (类似于其他权重)。

let f = NSFont(name: "SFMono-Regular", size: 12)

在iOS 13和macOS 10.15中,Apple为开发人员提供了新的系统字体,包括SF Mono new York

您可以使用NSFont.monospacedSystemFont(ofSize: 0, weight: .regular)获得SF Mono。

如果你想使用其他系统字体,你可以使用NSFontDescriptor:

if let sfMonoDescriptor = NSFont.systemFont(ofSize: 0).fontDescriptor.withDesign(.monospaced) {
    let sfMonoFont = NSFont(descriptor: sfMonoDescriptor, size: 0)!
}

更多信息请看WWDC会话字体管理和文本缩放

相关内容

  • 没有找到相关文章

最新更新