Cocoa 强制NSTextView将不明确的宽度字符显示为半宽度

Cocoa 强制NSTextView将不明确的宽度字符显示为半宽度,cocoa,cocoa-touch,unicode,nstextview,unicode-normalization,Cocoa,Cocoa Touch,Unicode,Nstextview,Unicode Normalization,根据上下文(区域设置、字体、周围字符)的不同,可以是半宽或全宽 如何强制NSTextView始终将不明确的宽度字符渲染为半宽度?是否有一些我应该使用的规范化算法?理想情况下,我可以在一个配置中进行设置。有一个CFMutableStringAPI用于在全宽和半宽之间进行转换。在将字符串传递到NSTextView之前,您可以直接将其应用于字符串:如果需要动态转换用户输入的文本,您可以将字符串转换代码放入NSTextView的委托方法@NicolasMiari Nice find!但是,如果没有半角字

根据上下文(区域设置、字体、周围字符)的不同,可以是半宽或全宽


如何强制
NSTextView
始终将不明确的宽度字符渲染为半宽度?是否有一些我应该使用的规范化算法?理想情况下,我可以在一个配置中进行设置。

有一个
CFMutableString
API用于在全宽和半宽之间进行转换。在将字符串传递到
NSTextView
之前,您可以直接将其应用于字符串:如果需要动态转换用户输入的文本,您可以将字符串转换代码放入
NSTextView
的委托方法@NicolasMiari Nice find!但是,如果没有半角字符等效项,它就不起作用。例如,
\u{a1}
被转换为
\u{a1}
:-(我想知道是否可以在Cocoa中设置ICU属性。如果可以,那么我可以将
East_Asian_Width
设置为
0
以将字符配置为东亚中性字符?Nvm ICU不允许在运行时修改属性:有一个
CFMutableString
API用于在全宽和半宽之间转换。也许您可以直接应用它。)在将字符串传递到
NSTextView
之前,请先转换字符串:如果需要动态转换用户输入的文本,或许可以将字符串转换代码放入
NSTextView
@NicolasMiari Nice find!如果没有等效的半角字符,则无法工作。例如,
\u{a1}
转换为
\u{a1}
:-(我想知道是否可以在Cocoa中设置ICU属性。如果可以,那么我可以将
东亚宽度设置为
0
以将字符配置为东亚中性?Nvm ICU不允许在运行时修改属性: