0

我有两个 TableView(一个 SourceList 和一个 Normal TableView)。我没有使用 ArrayControllers,只是使用:

- (id)tableView:(NSTableView *)aTableView
objectValueForTableColumn:(NSTableColumn *)aTableColumn
            row:(NSInteger)rowIndex;

- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView;

这显示行内容。但问题是我不仅有一个 TableView - 我还有不止一个。所以我在里面添加了另一个带有这个代码的 NSObject。但内容不会显示。

我必须使用 ArrayControllers 吗?或者我可以用另一种方式显示第二个 TableView 的内容吗?

4

1 回答 1

0

您不必使用阵列控制器。事实上,在 Cocoa 一生的大部分时间里,它们甚至都不存在。数据源协议工作得很好(在某些情况下甚至更好)。

当然,您可以有单独的控制器(每个表一个),但请注意,您会在每个数据源和委托方法(上面的源代码中的 aTableView)中获得对表视图的引用,因此您可以根据具体情况给出不同的响应表视图。这样,一个控制器可以负责主/详细 UI 中的两个表。换句话说:

表视图:“第 3 行的 A 列是什么?”

你的控制器:“谁在问?”

关于您的数据未显示,您是否实例化了第二个控制器并将问题表的数据源连接到它?你问表要-reloadData 吗?您提供的信息有限,很难为您提供帮助。

于 2010-04-07T17:07:18.620 回答