在我的设置中,我有一个连接到 mac 的卷的 NSCollectionView。对于 NSCollectionViewItem 的视图,我有一个 NSBox,里面有一个 NSTableView,列出了该卷的内容。
我的问题是在尝试向 NSTableView 添加/删除项目时出现的。NSBox 好像初始化过一次,所以只有一个 NSTableView。这意味着当我想更新 NSTableView 中的数据时,我无法在 IBOutlet 上调用 reloadData 并让它更新所有表。
如果我在 NSBox 的子类中创建一个 IBOutlet,则该实例为 nil,因此我无法通过它调用它。
我最接近的方法是在代码周围加上一个@try @catch,该代码在列中的一行返回对象,由于该项目不再存在而发生异常,因此我可以获取tableView并调用reloadData,这似乎更新特定的 NSTableView。
这样做的问题是,如果删除的项目位于表格的末尾,或者如果添加了一个项目,则不会发生异常,因为它可以看到所有现有项目。
有没有人在 NSCollectionViewItem 的视图上使用 NSTableView 的经验?你是如何更新表格的?