cocoa - AppKit 中的固定间距数字

标签 cocoa appkit nsfont

我有一个带有计时器的应用程序。该计时器位于 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/

相关文章:

objective-c - Objective-C 应用程序中的自定义字体

cocoa - 在Cocoa文本绘图中的字符之间插入规则空格

objective-c - 根据字体/大小更改 NSTextField 的高度

xcode - macOS NSExtensionMainStoryboard 无法加载

xcode - 如何获取 Mac 菜单栏中当前的图标列表?

java - org.eclipse.swt.cocoa.macosx.x.<version_no>.jar 与 org.eclipse.swt.<version_no>.jar 之间的区别?

macos - 透明背景WKWebView(NSView)

objective-c - Reeder Mac 应用程序在切换文件夹时如何以动画方式显示列表?

Objective-C:获取日历年中的天数

cocoa - SketchApp、PaintCode 或 Monodraw 使用什么类型的 Canvas - Cocoa