单个NSTableView,具有多个数据源

时间:2012-04-30 05:26:20

标签: objective-c cocoa nstableview

有两个数据源填充单个NSTableView是否合乎逻辑?或者弹出按钮(能够选择从哪个数据源中读取)会更合理吗?

如果我使用单个NSTableView选项,如果我将所有数据输入单个数据源(例如NSDictionary)然后填充表格,我会更好吗?我看到这个想法的唯一问题是当选择表格时会发生什么。我将如何解读选择了哪个原始位置。

刚刚突然出现的另一个想法/潜在问题......如果我从数据源获取数据并直接填充表格,那么如何在相关的NSTableView'count'方法中给出表的计数。是否会添加数据存储1和数据存储2的数量呢?

很抱歉,如果它有点混乱......感谢任何输入!

2 个答案:

答案 0 :(得分:2)

您绝对可以使用多个数据源来在表视图中显示数据,但它们必须通过单个控制器对象进行汇总,该对象被指定为表视图的datasource并实现{{ 1}}协议。

您必须在控制器对象中编写一些代码,以便跟踪组成的多个源数组,并为表视图提供项目数和每个项目内容的相应值。

这是一个非常简单的例子:

NSTableViewDatasource

至于选择,你的控制器知道它从哪里获取数据,所以当用户选择一个特定的行时,将该行索引转换为你的一个后备存储中的匹配对象应该是微不足道的。

答案 1 :(得分:1)

根据您的应用程序逻辑,它可能有意义。最简单的方法是为每个表部分设置不同的源。然后,您可以使用节号作为数据库的选择器。