在我的设置我具有连接到MAC体积的NSCollectionView。对于NSCollectionViewItem的查看我有一个NSTableView一个NSBox内列出了卷中的内容。

试图添加/删除项目的NSTableView的,当我的问题来了。该NSBox似乎是一次初始化,所以只有一个NSTableView的。这意味着,当我想更新NSTableView的我内的数据不能调用上一个IBOutlet reloadData并将它更新所有的表。

如果我在NSBox的子类建立一个IBOutlet,它是零的情况下,所以无法经由调用它。

我来最接近的是由包围周围的代码@try @catch其返回在列一列的对象,发生异常时,因为该项目不再存在,所以可抓住的tableView和呼叫reloadData,这似乎更新特定NSTableView的。

这样做的问题是,如果已删除项目是在表的末尾,或者如果被添加的项目,将不会发生异常,因为它可以看到所有的现有项目。

有没有人有一个NSTableView上NSCollectionViewItem的观点的经验吗?你是如何更新表?

有帮助吗?

解决方案

把NSBox(及其NSTableView的)转换成其自己的笔尖。每次创建一个新的集合视图项目时,加载笔尖,组NSBox作为集合视图项目的看法,并释放NSBox。

至于送进工作台的观点,最简单的方法可能是绑定。绑定表视图,所述收集视图项表示模型对象的不同属性的每一列。你可能想通过阵列控制器,当然,这有那些每集合视图项目的一种手段,并将其添加到一个数组,你会在dealloc释放。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top