我希望NSTextField
将空字符串替换为0(或允许的最小值),因此我创建了自定义NSNumberFormatter
:
class NonEmptyNumberFormatter: NSNumberFormatter {
override func getObjectValue(obj: AutoreleasingUnsafeMutablePointer<AnyObject?>, forString string: String, range rangep: UnsafeMutablePointer<NSRange>) throws {
if string.isEmpty {
obj.memory = self.minimum ?? 0
} else {
try super.getObjectValue(obj, forString: string, range: rangep)
}
}
}
它适用于空字符串,但是如果我设置minimum
属性,则输入小于minimum
的值会使应用程序崩溃。
try super.getObjectValue(...)
来电有问题吗?
我想保留非空字符串的基类(NSNumberFormatter
)行为。
以下是在操场上测试它的示例要点:https://gist.github.com/iskeld/a6ba57b145f2f9208fa63efc69d2c517
- 我不明白为什么OverridenFormatter
在将调用委托给基类时会导致错误。