子类化NSArrayController导致ManagedObjectContext中的对象无法在NSTableView中显示

时间:2017-06-21 10:39:06

标签: swift macos nspersistentdocument nsmanagedobjectmodel

这很奇怪。我有一个有三个实体的模型。像这样: enter image description here

在InterfaceBuilder中,我使NSArrayController通过RepresentedObject连接到MOC到ViewController。一切正常,我可以添加和删除主对象,选择它们,我可以绑定到TableView并编辑它们。但是如果我将NSArrayControler子类化为MasterController并只添加观察者:

{{1}}

TableView没有看到现有的对象,只是刚刚添加。我可以编辑它们。但是当我再次打开文档时,新添加的对象也会消失。如果我将控制器类更改回NSArrayController,我可以再次看到它们。

任何帮助?

2 个答案:

答案 0 :(得分:1)

我几乎确定observeValue(forKeyPath:of:change:context:)内部使用了NSArrayController,您应该致电super.observeValue(forKeyPath:of:change:context:)以获得预期的行为......

答案 1 :(得分:0)

通过在覆盖的super.awakeFromNib()

中调用func awakeFromNib()来解决问题