代码之家  ›  专栏  ›  技术社区  ›  TalkingCode

Cocoa绑定:手动更新nsObjectController?

  •  2
  • TalkingCode  · 技术社区  · 15 年前

    在我的Cocoa应用程序中,我在nsObjectController的帮助下将类的属性绑定到了一些文本字段。到目前为止,唯一的问题是:在nsObjectController用当前输入更新类之前,您总是需要留下一个文本字段。

    如果用户不离开texfield并立即单击保存/提交按钮,这将成为一个问题。类不包含当前输入。总是件坏事。

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Alex    15 年前

    发送一个 commitEditing 向处理程序中的控制器发送有关“确定”按钮的消息。这会满足你的要求。它很简单:

    - (void)save:sender {
        if (![self.myObjectController commitEditing]) {
            // Handle error when object controller can't commit editing
        }
    
        // Other stuff
    }
    
        2
  •  0
  •   Brian Webster    15 年前

    如果转到文本字段的 value 绑定并选中“Continuously updates value”选项,这将导致每次用户更改模型对象时在模型对象上设置新值,即每次按键一次。这将确保模型在关闭窗口之前具有正确的值,尽管根据数据模型中设置的值的影响(如果有的话),这可能有点过分。