更具体的NSNumberFormatter失败行为

Sim*_*ead 6 validation macos cocoa objective-c nsnumberformatter

我有一个NSTextField我需要用户输入最大值和最小值之间的数字,如果我能检测NSNumberFormatter到特定测试失败的时候会很好,所以我可以显示更好的消息("数字太大"不是很有帮助,它需要显示有效范围)或者只是将字段自动设置为最接近的有效值.

我已经查看了NSTextField委托的?control:didFailToFormatString:errorDescription:方法,它似乎不允许你修改错误,我已经看过覆盖NSNumberFormatter?getObjectValue:forString:range:error:方法,它确实给了我一个NSError我可以修改的方法,但似乎没有以何种方式确定返回了哪个特定错误.

由于我只是输入一个简单的整数,我不需要大部分功能NSNumberFormatter,从头开始编写自己的格式化程序会更好吗?

Jer*_*myP 1

有一种方法可以确定 NSError 中返回哪个错误。NSError错误代码文档定义了最大和最小验证失败的错误。只需将-code发送到您的 NSError 对象即可。