绑定到数组控制器的文本字段不会更改数组中的值

时间:2011-05-27 15:36:52

标签: objective-c cocoa macos nsarraycontroller nstextfield

我有一个文本字段,用于显示从其他几个文本字段计算的“总费用”。当我获得controlDidEndEditing:时,我会计算此总费用,并使用setDoubleValue:将其放入总费用字段中。我将Total Cost字段的值绑定到数组控制器,如果我手动更改字段的值,则将其保存到控制器的数组中。但是,如果我以编程方式执行此操作,则字段的显示将更改,但数组和表中显示的值不会更改。

是什么原因?

1 个答案:

答案 0 :(得分:0)

如果你有一个绑定控件,比如textField,使用setStringValue这样的方法改变它的状态:不会触发绑定机制将更改推送到绑定目标。这只是绑定设计的一部分。如果要以编程方式有效地更改textField的值,则需要使用绑定的键的setter在模型对象中更改它,或者使用setValue:forKey。因此,如果你将nameTextField绑定到person.name,则需要调用[person setName:newName]或[person setValue:newName forKey:@“name”]。