0

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

4

2 回答 2

1

非常感谢哈尔穆勒。

通过去:

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

现在我可以走得更远了。

于 2017-06-27T17:02:37.060 回答
0

如果您NSManagedObjectContextObjectsDidChange在阵列控制器的托管对象上下文中注册通知,您将在这些对象更改时收到通知。通过为您的视图使用专用的子 MOC,该 MOC 将捕获所有更改,然后您可以将您的 MOC 保存到其父 MOC。

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

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

当用户完成对 NSTableView 中的单元格的编辑时,如何获得通知?有一些很好的讨论。

于 2017-06-20T21:09:15.480 回答