1

我有一个带有数字格式化程序的 NSTextField:

NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init];

[myFormatter setFormatWidth:7];
[myFormatter setPaddingCharacter:@"0"];
[myFormatter setMinimumSignificantDigits:0];

[myFormatter setMinimum:[NSNumber numberWithInteger:0]];
[myFormatter setMaximum:[NSNumber numberWithInteger:9999999]];
[myClientIDTextField setFormatter:myFormatter];

一切都按预期工作,但我无法在文本字段中输入“0”或“00”或“000”等,如果我确实在窗口上出现一张工作表,说我的输入无效。我的预期行为是输入“0”应该被验证为“0000000”。有没有人知道为什么会发生这种情况以及如何解决这个问题?

谢谢

4

1 回答 1

0

如果您将格式指定为@"0000000",则它需要 7 位数字,并且将在不存在数字的地方填充 0。

NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init];
[myFormatter setFormat:@"0000000"];
[myFormatter setMinimum:@0];
[myFormatter setMaximum:@9999999];
[myClientIDTextField setFormatter:myFormatter];

希望有帮助。

于 2015-02-02T05:56:08.937 回答