首页 > 解决方案 > NSControl 对象内的日文字体渲染不正确

问题描述

我正在 macOS 中构建一个具有动态本地化的 UI 应用程序(这意味着可以在应用程序运行时切换语言)。

我注意到,如果初始语言配置为日语,并且我即时切换到英语,则控件上的文本呈现正常。然而,在相反的情况下,当初始语言是英语并且我即时切换到日语时,文本字段上的日语符号会放大一点。(见下图强调差异 - 左边的片段是原始渲染,而右边的代表放大版本)

原文 放大的文字

对于任何特定控件,只需将本地化字符串(借助NSLocalizedString函数获取)分配给stringValue控件的属性即可更改语言。

这些结果出现在我测试过的所有版本(10.13 和 10.12)上。

也许有人遇到过类似的结果?我应该如何解决它们?

标签: objective-cswiftmacoscocoalocalization

解决方案


因此,如果在您的机器上正确安装了语言,那么显然渲染问题就解决了Language and Regions -> Preferred Languages


推荐阅读