【问题标题】:What is the NSFont name for the font 'SF Mono'?字体“SF Mono”的 NSFont 名称是什么?
【发布时间】:2016-10-06 08:07:27
【问题描述】:

Xcode 8 引入了一种名为“SF Mono”的新字体。

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

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

【问题讨论】:

  • 这里对于 iOS 的同样问题:stackoverflow.com/questions/39296282/where-is-sf-mono-font。显然该字体对开发人员不可用:(
  • @MartinR 这不是同一个问题(或者至少我不认为它是);我正在寻找程序化字体名称(类似于“.SFNSText”),但另一个问题是寻找字体文件本身。很遗憾它对开发人员不可用:(

标签: swift nsfont


【解决方案1】:

“SF Mono”不是系统字体。您不能在终端、控制台和 Xcode 之外选择 SF Mono,因为它没有安装到系统中。

终端中的“SF Mono”是/Applications/Utilities/Terminal.app/Contents/Resources/Fonts/ 中的custom font

同样,控制台中的“SF Mono”是/Applications/Utilities/Console.app/Contents/Resources/Fonts中的另一种自定义字体

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

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    在 iOS 13 和 macOS 10.15 中,Apple 为开发人员提供了新的系统字体,包括 SF MonoNew 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 会议Font Management and Text Scaling.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2016-07-27
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      相关资源
      最近更新 更多