NSTextField Retina 字体大小问题

NSTextField Retina Font Size Issue

我在 NSTextField 字体渲染方面遇到了一个非常奇怪的问题。

NSTextFieldNSOutlineViewNSTableCellView 内。 在我没有 Retina 显示器(外部)的主机上,字体大小看起来正常。

但是,如果我切换到配备 Retina 显示屏的 MacBook 12",同一个单元格会将其 NSTextField 内的文本呈现得更小。这让我感到困惑,因为我在应用程序中有另一个轮廓视图不受此问题的影响。我还通过从调色板中拖入一个新文本字段来确保我没有为文本字段配置任何特殊内容。

我也手动子类化了NSTextField看谁把字号从13pt调小到11pt,调用来自系统框架

什么会影响视网膜显示器上的字体大小?

我怀疑这与 Retina 显示屏无关。只是两个账号的设置不同而已。

特别是,我怀疑出现此问题的大纲视图是源列表。它的 selectionHighlightStyle.sourceList。源列表根据“系统偏好设置”>“通用”>“边栏图标大小”调整其大小。 (更改图标大小也会更改标签大小。)您可以更改该设置,您的应用程序应该实时调整源列表项的大小。

理想情况下,您的源列表应该遵循此设置。所以,你应该接受这种行为。如果您不想要它,您可以重新考虑将大纲视图设为源列表。

如果您真的想将大纲视图保留为源列表但要覆盖此行为,则可以在整个应用程序范围内执行此操作。您可以让您的应用在 UserDefaults 中为键 NSTableViewDefaultSizeMode 设置一个值。小号为 1,中号为 2,大号为 3。