2

我对 Cocoa 中的 NSTextField 有疑问。有没有办法从 NSTextField 中删除区域设置

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

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

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

这适用于美国,但不适用于非美国,即使 value 是正确的浮点数(例如 0.3)[textField setStringValue:[NSString stringWithFormat:@"%.3f",value]];

文本字段的类型为 NSTextField

谢谢!

4

1 回答 1

2

您应该使用NSNumberFormatter而不是+[NSString stringWithFormat:]. 事实上,使用NSNumberFormatter允许您:

  • 配置小数分隔符后的最小和最大位数;
  • 配置用作小数分隔符的字符串,以防您要覆盖用户的区域设置;
  • 配置舍入行为(如果这很重要);

除其他功能外。

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

于 2011-06-20T21:55:07.223 回答