AppKit 中的固定间距数字

Fixed spacing numbers in AppKit

我有一个带计时器的应用程序。该计时器位于视图的中央。当 macOS 的默认字体是 Helvetica Neue 时,这工作正常。字体的数字似乎是均匀分布的,所以当计时器为 运行 时,一切都保持原样。

现在使用 San Francisco 作为默认字体,这已被破坏。每个数字似乎都有不同的宽度,导致计时器在 运行 期间不断变化。将字体硬编码为 Helvetica Neue 可解决此问题,但我想使用 OS.

的默认字体

我可以使用 NSTextField 设置某种提示,它会像以前一样呈现具有固定宽度数字的默认系统字体吗?我似乎记得这个可用,但我找不到它。我不想使用固定宽度的字体,因为它破坏了美感。 iOS 上的秒表应用程序似乎以某种方式在执行此操作。

使用NSFont

的这个class方法
  • Swift

    class func monospacedDigitSystemFont(ofSize fontSize: CGFloat, weight: CGFloat) -> NSFont
    
  • Objective-C

    + (NSFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight;
    

可用 macOS 10.11+