gpt4 book ai didi

macos - 为什么 10.4 样式的 NSNumberFormatter 不自动本地化小数分隔符?

转载 作者:行者123 更新时间:2023-12-03 16:19:37 24 4
gpt4 key购买 nike

最近我发现使用 NSNumberFormatter 设置为“OS X 10.0 Behaviour”可能不再流行。因此,我将几个 NSTextField 附加的数字格式化程序更改为“10.4 默认行为”和十进制样式。

一切正常,除了从美国 (.) 语言环境切换到德语 (,) 语言环境后,数字格式化程序不再自动本地化其小数分隔符。看来我一直坚持在 IB 中创建数字格式化程序时使用的事件小数分隔符。

IB 中的“本地化”复选框没有效果,正如预期的那样,因为 setLocalizesFormat: 据记录仅适用于 10.0 样式格式化程序(让我想知道为什么该复选框在那里)。

我现在的解决方法是在 IB 中设置一个自定义 NSNumberFormatter 子类,如下所示:

- (void) awakeFromNib
{
self.decimalSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleDecimalSeparator];
}

我不敢相信这是正确的方法,因为 10.0 样式格式化程序没有这个问题。

我缺少什么想法吗?

问候,伊利亚

最佳答案

我已经确认您在 Xcode 的界面生成器中发现了一个错误 - 它在创建 XIB 时卡住了数字分组分隔符,如果选中“本地化”框,则不应执行此操作。请提交雷达。

以下代码可以正常工作,并确保所有本地化属性(小数点、组分隔符等)将在运行时设置:

self.textFieldCell.formatter = [NSNumberFormatter new];
((NSNumberFormatter *)self.textFieldCell.formatter).numberStyle = NSNumberFormatterDecimalStyle;

关于macos - 为什么 10.4 样式的 NSNumberFormatter 不自动本地化小数分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com