我有一个带有计时器的应用程序。该计时器位于 View 的中心。当 macOS 的默认字体是 Helvetica Neue 时,这个效果很好。看起来字体的数字间隔均匀,因此当计时器运行时,一切都保持在原位。
现在使用 San Francisco 作为默认字体,这个问题就被打破了。每个数字似乎都有不同的宽度,导致计时器在运行时不断变化大小。将字体硬编码为 Helvetica Neue 可以解决该问题,但我想使用操作系统默认的字体。
是否可以使用 NSTextField 设置某种提示,以像以前一样呈现具有固定宽度数字的默认系统字体?我好像记得这个是可用的,但我找不到它。我不想使用固定宽度的字体,因为它破坏了美观。看起来 iOS 上的秒表应用程序正在以某种方式执行此操作。
最佳答案
使用NSFont
的此类方法
swift
class func monospacedDigitSystemFont(ofSize fontSize: CGFloat, weight: CGFloat) -> NSFont
Objective-C
+ (NSFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight;
可用的 macOS 10.11+
关于cocoa - AppKit 中的固定间距数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594022/