禁用NSTextField的区域设置

时间:2011-06-20 06:12:40

标签: cocoa macos nstextfield regional-settings

我在Cocoa中遇到NSTextField问题。有没有办法从NSTextField中删除区域设置

我希望用户只输入0.6,0.7这样的值,但如果用户不是来自美国,则他被迫输入这样的0,6,0,7

因此,如果用户不是美国用户,如果他输入0.7 [textField floatValue]将返回0 如果用户是US并且他输入0,7 [textField floatValue]将返回0

好吧,让我说这是我可以接受但我想格式化值并只显示3位小数

这对美国有效但对非美国无效,即使价值是正确的浮点数(例如0.3)     [textField setStringValue:[NSString stringWithFormat:@“%。3f”,value]];

textfield的类型为NSTextField

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该使用NSNumberFormatter代替+[NSString stringWithFormat:]。事实上,使用NSNumberFormatter可以:

  • 配置小数分隔符后的最小和最大位数;
  • 配置用作小数分隔符的字符串,以防您想覆盖用户的语言环境;
  • 配置舍入行为,如果这很重要;

以及其他功能。

如果NSTextField位于nib文件中,Interface Builder / Xcode 4允许您将formatter插座链接到NSNumberFormatter实例。您也可以通过将-setFormatter:发送到文本字段来以编程方式执行此操作。

相关问题