使用NumberFormatter的minimum属性

时间:2018-08-08 11:38:14

标签: macos cocoa nstextfield nsnumberformatter

我想我缺少关于NumberFormattersNSTextFields互动的方式。

我想要一个NSTextField,它采用2到60之间的整数值,并且在大多数情况下都起作用。

NSTextField已连接到我的NSNumberFormatter子类实例,并且其所有属性均已正确设置。我使用委托来允许用户使用箭头键来增加和减少值。

数字格式化程序实现isPartialStringValid(_ partialString: String, newEditingString newString: AutoreleasingUnsafeMutablePointer<NSString?>?, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?),仅允许输入数字。

我唯一的问题是无法键入10,因为当您键入第一位数字1时,格式化程序将1设置为小于最小值2,因此该值为非法,什么也没发生。

我真正想要的是不可能键入大于60的数字(可以正常工作),但是只能在按下Enter键时验证最小值。如果该数字小于最小值,则应该显示错误消息(通过NSError)。

但是,我只能找到始终显示错误消息或永不显示错误消息的方法。是否有某种机制说“立即检查”和“仅在输入时检查”?

还是有一种更好的方法来接受我所缺少的部分正确输入?

0 个答案:

没有答案