0

我正在开发一个应用程序,我需要在 3.0 和 4.0 中运行我的应用程序。我有一个文本字段,当我尝试在文本字段中输入数字时,行为是这样的......在 3.0 中:- 它允许输入 7 个数字和 2 个小数值(我已将其格式化为这样)。我已根据所选国家/地区对数字以及逗号分隔符进行格式化和本地化。它在 3.0 和 3.1.2 中完美运行

在 4.0 中: - 它只允许您输入 4 个数字,在输入第 5 个数字后,它会使文本字段为空。当您输入第 5 个数字时不显示任何内容,当您输入第 6 个数字时,它从第 1 个数字开始并继续相同的直到 4 个数字。例如: - 当你输入 1234 时,文本字段出现 - 1234 当你输入 12345 时,文本字段出现“”。当你现在输入 6 时,它以 6 开头,依此类推..

我正在使用 NSNumberFormatter 和 numberfromstring 方法来格式化在文本字段中输入的值。

我无法理解为什么会这样……请帮帮我……

4

1 回答 1

0

我在这个网站的另一个问题上给出了一些解决方法。据我所知,当文本中有空格或逗号(例如每 3 位数字)时,NSNumberFormatter 有时会出现问题。当它找到一个空间时它返回 NIL。但是,在我的代码的另一个区域,它似乎工作正常

0

我有同样的问题。我将其追踪到一个 NSNumberFormatter 语句,该语句不喜欢数字中每 3 位的空格(或逗号)。这是拥有数字格式化程序的原因之一。

NSNumber *number = [currencyFormatter numberFromString:mstring];

在互联网上的许多示例中,它都是相当标准的代码,所以我怀疑很多人会发现问题。

无论如何,我通过去掉空格来修复它

NSArray *sArray = [mstring componentsSeparatedByString:@" "]; [mstring setString:@" "]; //开头的空格是可以的,宁愿 nil for (NSString *sElement in sArray) { [mstring appendString:sElement]; }

然后currencyFormatter 行起作用了。

但是,在我的代码的另一个区域,相同的 currencyFormatter 语句没有问题。我尝试更改该区域的代码以导致问题,但我做不到。

所以,很好奇!!!德里克 MakeItSoSudios.com

于 2010-07-09T19:27:38.007 回答