Master - 使用两个NSTreeControllers,核心数据和绑定的详细应用程序

时间:2012-04-02 17:54:27

标签: core-data nsoutlineview nstreecontroller

使用Master(NSOutlineView + NSTreeController)和Detail(NSOutlineView + NSTreeController)设置尝试使用Master-Detail应用程序时遇到问题。

这是一个基于Apple的Abstract-Tree示例应用程序的最简单的应用程序。

https://s3.amazonaws.com/applicationtests/AbstractTree-MasterDetail.zip

我基本上使用树节点左侧项目浏览器,右侧详细浏览器显示依赖于项目浏览器选择的详细树。

我的设置很简单。

Master NSOutlineView绑定到Master NSTreeController,处理CoreData实体项目节点。 细节NSOutlineView绑定到细节NSTreeController处理CoreData实体细节节点。

他们都是树。

项目节点实体具有“与细节关系”节点,允许“项目”树根据选择显示详细信息树。

我遇到的问题是当我将Detail NSTreeController中的contentObject绑定到Master NSTreeController选择时:

详细信息NSTreeController contentObject绑定到Master NSTreeController selection.detailNode

每次我更改主树outlineView中的选择时,细节NSTreeController都会创建一个永远不会被释放的NSTreeControllerTreeNodes。

基本上每次更改主控制器选择时,细节NSTreeContrller都会创建一组新的NSTreeControllerTreeNode对象,这些对象永远不会被取消分配。

查看“仪器分配”工具,每次更改选择时都会创建新节点。即使在删除所有主节点之后,仍然会分配节点。

我已经尝试准备一个NSViewController,使用主控制器选择更改来重新加载一个新的nib文件,但这对我来说似乎是一个很大的开销。

当contentObject绑定更改为另一个值时,有人知道如何处理创建的NSTreeControllerTreeNodes吗?

感谢。

0 个答案:

没有答案