我想为我的 NSArraycontroller 创建一个 addObserver。这个想法是,如果来自 Core Data 的记录(绑定到 NSArrayController)发生更改,则记录将保存到 sqlite 数据库中。NSArraycontroller 绑定到一个 NSTableView。
问问题
112 次
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 回答