我有一个带有数字格式化程序的文本字段,它与一个带有Cocoa绑定的变量绑定在一起。 还有一个步进器,我已经绑定到相同的变量来增加值,我已经使用NSLog进行测试,它运行良好。
我的问题是:每当我在框中键入数字时,除非我按回车键,否则变量不会更新。 NSTextBox如何知道用户何时完成输入?有没有办法在输入每个数字后动态更新变量?
非常感谢
富
答案 0 :(得分:0)
在Interface Builder中为控件启用“连续”属性时,该字段会在值更改时触发其绑定。
答案 1 :(得分:0)
首先,您确定是否希望立即更新?用户的击键之一可能是无效字符(即,不是数字)。 NSNumberFormatter可以提供帮助,但我相信您仍然必须“提交”该条目才能将其作为正确的数字条目进行验证。
其次,您始终可以实施-textDidChange: NSTextDelegate方法。但是,同样的问题与上述相同。输入无效可能会触发。要解决这个问题,你可以尝试从字符串输入创建一个NSNumber,如果你没有得到一个NSNumber,在你这样做之前不要打扰你(如果该字段失去了无效输入的焦点,请将其改回到最后一个有效值)但是你复制了免费获得的“提交时验证”NSNumberFormatter行为。