更改为等宽数字字体后,Cocoa NSTextField 文本在视图中被截断

Posted

技术标签:

【中文标题】更改为等宽数字字体后,Cocoa NSTextField 文本在视图中被截断【英文标题】:Cocoa NSTextField text get cut off in view after changed to monospaced digital font 【发布时间】:2019-07-11 13:50:42 【问题描述】:

当我将字体更改为monospacedDigitSystemFont 时,NSTextField 内的文本被截断。

我在viewDidLoad 方法中有以下代码。我不明白为什么自从调用了sizeToFit 之后它就被切断了,应该使用内部大小。

底部的标签看起来不错,并且使用的是默认系统字体。

    labelTimeNow.sizeToFit()
    labelTimeNow.font = NSFont.monospacedDigitSystemFont(
        ofSize: labelTimeNow.font!.pointSize,
        weight: .medium
    )
    labelTimeNow.stringValue = DCClock.getCurrentTimeInFormat("HH:mm")

参考

How can I set NSTableView column to use monospaced numbers?

【问题讨论】:

【参考方案1】:

我傻了,我应该在更改字体间距后调用sizeToFit

    labelTimeNow.font = NSFont.monospacedDigitSystemFont(
        ofSize: labelTimeNow.font!.pointSize,
        weight: .medium
    )
    labelTimeNow.stringValue = DCClock.getCurrentTimeInFormat("HH:mm")
    labelTimeNow.sizeToFit()

【讨论】:

以上是关于更改为等宽数字字体后,Cocoa NSTextField 文本在视图中被截断的主要内容,如果未能解决你的问题,请参考以下文章

JTextPane 的等宽字体/符号

win10有没有自带的等宽字体

等宽字体无法在服务器上正确显示

<kbd> 标签的意义何在?

IDEA编辑器中的字符宽度不同

如何在具有保留字符宽度的 HTML 中使用等宽字体显示特殊的 unicode 字符