Cocoa-Bindings:手动更新NSObjectController?

时间:2009-10-19 18:08:03

标签: cocoa cocoa-bindings

在我的小可可应用程序中,我借助NSObjectController将类的属性绑定到某些文本字段。到目前为止我唯一的问题是:在NSObjectController用当前输入更新类之前,你总是要留下一个文本字段。

如果用户没有离开texfield并立即点击“保存/提交”按钮,则会出现问题。该类不包含当前输入。总是一件坏事。

我正在寻找避免这种情况的方法。就像告诉NSObjectController获取当前输入一样,即使用户已退出该字段。如果可以的话,我可以在保存之前将此命令放在save-Method中,一切都会好的。

2 个答案:

答案 0 :(得分:1)

在OK按钮的处理程序中向控制器发送commitEditing消息。这将满足您的要求。它很简单:

- (void)save:sender {
    if (![self.myObjectController commitEditing]) {
        // Handle error when object controller can't commit editing
    }

    // Other stuff
}

答案 1 :(得分:0)

如果转到文本字段的value绑定并选中“连续更新值”选项,则每次用户更改时都会在模型对象上设置新值,即每次更新一次按键。这将确保模型在关闭窗口之前具有正确的值,尽管它可能有点过度,取决于数据模型中设置的值的效果(如果有)。