将障碍物添加到NSArrayController

时间:2017-06-20 18:31:08

标签: core-data nsarraycontroller addobserver

我想为我的NSArraycontroller创建一个addObserver。 我们的想法是,如果来自Core Data的记录(绑定到NSArrayController)发生更改,则记录将保存到sqlite数据库中。 NSArraycontroller绑定到NSTableView。

2 个答案:

答案 0 :(得分:1)

非常感谢Hal Mueller。

前往:

// MARK: - Textfield.
    override func controlTextDidEndEditing(_ obj: Notification) {
        print("Notificatie: \(obj)")
    }

现在我可以走得更远了。

答案 1 :(得分:0)

如果您在阵列控制器的托管对象上下文中注册NSManagedObjectContextObjectsDidChange通知,则会在这些对象发生更改时收到通知。通过使用专用的子MOC进行查看,MOC将捕获所有更改,然后您可以将MOC保存到其父级。

如果您想要基于用户编辑的通知,请使用tableview,而不是数组控制器。如果您仍在使用基于单元格的表视图,请考虑覆盖其中一个(已弃用的)方法,例如-textDidEndEditing:。

对于基于视图的表视图,请查看NSControl的各种委托,例如-control:textShouldEndEditing:在NSControlTextEditingDelegate上。在tableview委托上实现它们,当然也使tableview委托也成为表中每个控件的委托(可能已经发生了?先检查)。

How can I get notified when the user finishes editing a cell in an NSTableView?有一些很好的讨论。

相关问题