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

问题描述 投票:0回答: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”。 有谁知道为什么会发生这种情况以及如何解决这个问题?

谢谢

objective-c cocoa nsnumberformatter nsformatter
1个回答
1
投票

如果指定格式为@“0000000”,则需要7位数字,不存在的数字将补0。

// Objective-C
NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init];
[myFormatter setFormat:@"0000000"];
[myFormatter setMinimum:@0];
[myFormatter setMaximum:@9999999];
[myClientIDTextField setFormatter:myFormatter];
// Swift
let myFormatter = NumberFormatter()
myFormatter.format = "0000000"
myFormatter.minimum = 0
myFormatter.maximum = 9999999
myClientIDTextField.formatter = myFormatter

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.