Cocoa:在控制绑定中避免"持续更新"

tro*_*foe 2 cocoa binding key-value-observing nstextfield

我有几个面板包含NSTextField绑定到File的Owner对象中的属性的控件.如果用户编辑了一个字段,然后按Tab键,要移动到下一个字段,它将按预期工作.但是,如果用户没有按Tab键并按下OK按钮,则不会在File的Owner对象中设置新值.

为了解决这个问题,我在绑定中连续设置了更新,但这必须是昂贵的(编辑:或者至少它是不优雅的).

有没有办法在按下确定按钮时强制绑定更新,而不是连续使用更新

Rob*_*ger 6

你是对的,你不需要使用持续更新值选项.

如果你正在使用绑定(你是),那么你应该做的是调用管理绑定-commitEditingNSController子类的方法.您通常在关闭正在显示的工作表的方法中执行此操作.

-commitEditing 告诉控制器在活动控件中完成编辑并将当前编辑提交给绑定对象.

每当执行诸如保存之类的持久性操作时,最好调用它.