我有一个小应用程序的可可和UI主要由一个单一的NSTableView的。不过,我有数据的2个不同的清单,我想在它显示,然后就在两者之间切换。我的问题是,你觉得什么是实现这个的最佳方式?

现在我的数字我可以用一个标志BOOL改变其Array获取在数据源的方法中使用。但是我还需要更改所使用,因为列表包含完全不同的数据对象的NSCell类。然后我需要重新加载表(将[表reloadData]可靠地重新载入该所有?)。

或者,我可以在我的NIB文件中创建2个独立的NSTableViews和切换自己的知名度......但这似乎hackish的。

我有可可的一个很好的理解,但我真的不知道如何寻找这样的事情,我很好奇,更有经验的开发者将如何其他解决这个问题。

感谢。

有帮助吗?

解决方案

  

或者,我可以在我的NIB文件中创建2个独立的NSTableViews和切换自己的知名度......但这似乎hackish的。

这不是hackish的根本。这是的hackish使用多组不同的数据的同一表视图。

只要创建具有两个选项卡的tabless NSTabView,放在所述第一接线片一个NSTableView并且在所述第二片的另一NSTableView。然后,您可以通过在-selectTabViewItemAtIndex:调用NSTabView你的表视图之间切换。

其他提示

为什么没有UITableViewDataSourceUITableViewDelegate的单独实施,并改变哪些所述UITableView指向当肘节事件发生?好像它会是要比拥有一个实现所有条件代码更清洁了很多。正因为大多数例子表明实施UITableViewController这两方面的协议并不意味着他们不能三个独立的对象。

Sixten奥托的答案是正确的。这就是说,如果我只是想砍一起一些工作,我可能会做这样的事情:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  if (dataSourceOne) {
    [self cellForRowAtIndexPathDS1:indexPath];
  }
  else {
    [self cellForRowAtIndexPathDS2:indexPath];
  }
}

和然后执行的cellForRowAtIndexPath的两个版本。我敢肯定重装数据的方法将刷新屏幕上的一切。

的hackish,但可行的。

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