我在 iPhone 应用程序中有一个文本字段,我想实现类似于 atms 输入的输入,您所要做的就是输入数字(不需要输入小数点字符)。我希望能够只为这个文本字段使用数字键盘。例如,文本字段最初显示:
0.00
如果用户输入序列 1234,文本字段将如下所示:
12.34
如果用户按下删除按钮,它也必须更新。
最佳答案
关于格式化,我认为您会对 this other SO post 中的详细信息感到非常满意描述如何使用 NSNumberFormatter显示前导和尾随零。从该帖子中提取和调整:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setFormat:@"##0.00"];
NSNumber* input; // Hook in your input
NSString* output = [NSString stringWithFormat:@"%@", [formatter stringFromNumber:input]]; // Hook to your text field
为了将 1234 的输入转换为 12.34(并且可能将 12 的输入转换为 0.12),请考虑您总是将输入的小数点移动两位。
// int storedInput has already been set to 1234
int input = 5; // Next button that was pressed
storedInput = storedInput * 10 + input; // 1234 * 10 + 5 = 12345
float displayedValue = input * .01; // 123.45
NSNumber* output = [NSNumber numberWithFloat:displayedValue];
这两个代码片段应该让您了解如何在您的程序中实现这些概念。至于删除...只需将 storedInput 设置为 0。每次有新的键盘输入时,您将调用这些代码以刷新值。
关于iphone - 像 atm 机器输入一样实现文本字段输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5042901/