Cocoa文本框更新变量

时间:2013-01-29 16:04:06

标签: objective-c cocoa xcode4.5

我有一个带有数字格式化程序的文本字段,它与一个带有Cocoa绑定的变量绑定在一起。 还有一个步进器,我已经绑定到相同的变量来增加值,我已经使用NSLog进行测试,它运行良好。

我的问题是:每当我在框中键入数字时,除非我按回车键,否则变量不会更新。 NSTextBox如何知道用户何时完成输入?有没有办法在输入每个数字后动态更新变量?

非常感谢

2 个答案:

答案 0 :(得分:0)

在Interface Builder中为控件启用“连续”属性时,该字段会在值更改时触发其绑定。

答案 1 :(得分:0)

首先,您确定是否希望立即更新?用户的击键之一可能是无效字符(即,不是数字)。 NSNumberFormatter可以提供帮助,但我相信您仍然必须“提交”该条目才能将其作为正确的数字条目进行验证。

其次,您始终可以实施-textDidChange: NSTextDelegate方法。但是,同样的问题与上述相同。输入无效可能会触发。要解决这个问题,你可以尝试从字符串输入创建一个NSNumber,如果你没有得到一个NSNumber,在你这样做之前不要打扰你(如果该字段失去了无效输入的焦点,请将其改回到最后一个有效值)但是你复制了免费获得的“提交时验证”NSNumberFormatter行为。