【发布时间】:2009-09-07 10:01:42
【问题描述】:
在我的设置中,我有一个连接到 mac 的卷的 NSCollectionView。对于 NSCollectionViewItem 的视图,我有一个 NSBox,里面有一个 NSTableView,列出了该卷的内容。
我的问题是在尝试向 NSTableView 添加/删除项目时出现的。 NSBox 好像初始化过一次,所以只有一个 NSTableView。这意味着当我想更新 NSTableView 中的数据时,我无法在 IBOutlet 上调用 reloadData 并让它更新所有表。
如果我在 NSBox 的子类中创建一个 IBOutlet,它的实例是 nil,所以我不能通过它调用它。
我最接近的方法是在代码中包含一个@try @catch,该代码在列中的一行返回对象,由于该项目不再存在而发生异常,因此我可以获取tableView并调用reloadData,这似乎更新了特定的 NSTableView。
这样做的问题是,如果删除的项目在表的末尾,或者如果添加了一个项目,则不会发生异常,因为它可以看到所有现有项目。
有没有人在 NSCollectionViewItem 的视图上使用 NSTableView 的经验?您是如何更新表格的?
【问题讨论】:
-
我写了一个blog post about NSCollectionView,你可能会觉得有用。
-
感谢您的指导。不确定自从您编写后事情是否发生了很大变化,但我发现 -LoadFromNib 不存在并使用 -loadNibNamed 代替。
标签: cocoa nstableview nscollectionview