NSNumberFormatter以nil值失败

时间:2012-04-24 13:57:12

标签: cocoa interface-builder cocoa-bindings nstextfield nsnumberformatter

我必须遗漏一些非常明显的东西,但我已经全神贯注,无法找到解决方案。

在Interface Builder中,我已将NSNumberFormatter连接到NSTextField,我已将该值绑定到浮点值。这一切都按预期工作,数字得到验证和更新。除非我输入一个空字符串,否则我会得到一个例外:

Exception detected while handling key input.
[<ResolutionSetting 0x11d029430> setNilValueForKey]: could not set nil as the value for the key scale.

如果文本字段为空,有没有办法让NSTextField返回空字符串(@“”)而不是nil?或者,有没有办法让NSNumberFormatter处理nil值?

2 个答案:

答案 0 :(得分:1)

setNilValueForKey:方法的默认行为是引发异常。您需要在代码中实现此方法以覆盖默认行为。例如,在未输入任何内容时指定0.0值。 例如:

- (void)setNilValueForKey:(NSString *)key{
//here you can either assign @"" or 0.0
}

您还可以在数字格式化程序属性检查器中指定最小值和最大值。

本主题在Apple文档中的“键 - 值编码编程指南”中以及“Mac OS X的Cocoa编程”的第7章中有所介绍。

答案 1 :(得分:1)

#! /bin/bash inotifywait -mr -e create --format '%w%f' /hdfs-nfs/* | while read NEWFILE; do echo "${NEWFILE} detected" hadoop fs -put "${NEWFILE}" / done 的{​​{1}}设置为非空字符串。

nilSymbol然后不再抛出异常,但向用户抱怨NSNumberFormatter是无效值。我不确定为什么会这样,但它是我发现的最简单的解决方案。

NSTextField