使用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吗?
感谢。