带数字格式化程序的NSTextField不仅接受填充字符

时间:2015-02-02 02:42:24

标签: objective-c cocoa nsnumberformatter nsformatter

我有一个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"。 有没有人知道为什么会发生这种情况以及如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

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

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

希望有所帮助。