NSControl 对象内的日文字体渲染不正确

Posted

技术标签:

【中文标题】NSControl 对象内的日文字体渲染不正确【英文标题】:Incorrect Japanese font rendering inside NSControl object 【发布时间】:2018-08-20 08:57:01 【问题描述】:

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

我注意到,如果将初始语言配置为日语,然后我立即切换到英语,则控件上的文本可以正常显示。 然而,在相反的情况下,当初始语言是英语并且我即时切换到日语时,文本字段上的日语符号会放大一点。 (看下图强调区别——左边的sn-p是原图,右边是放大版)

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于NSControl 对象内的日文字体渲染不正确的主要内容,如果未能解决你的问题,请参考以下文章

如何将日文 OTF 字体转换为与 FOP 一起使用

我可以检测文本中的非日文汉字吗

包含日文字符时缺少 TextField 字体样式

日文系统下ultraedit安装后,菜单显示乱码问题。

为啥只有拉丁字符的 Java 字体声称支持亚洲字符,即使它不支持?

Android:验证半角日文字符