使用Objective-C删除表视图中的所有行

时间:2009-12-17 21:26:33

标签: objective-c datasource nstableview

我正在寻找一种方法来删除NSTableView的所有行。

表视图有一个数据源,但它没有设置为变量,所以如果我需要一个数据源,我必须有类似“tableView的数据源”的东西来访问它。

7 个答案:

答案 0 :(得分:2)

从数据源中删除所有项目或更改数据源。

然后拨打reloadData

答案 1 :(得分:1)

嗯,你不能主动'删除'细胞,你只能被动地停止提供它们。

答案 2 :(得分:1)

您要么从数据源中删除所有项目,要么提供不同的数据源。您还可以提示您在进行此类更改后应刷新的NSTableView。

答案 3 :(得分:0)

当你说“如果我需要一个数据源”时,它听起来就像你对表视图的工作方式有误解。您确实理解编写数据源,对吗?它不是tableview的一部分,它是tableview提出问题的代码的一部分。 Tableview不包含数据。他们只是问你(数据源)有多少行,然后是每行和每行。

您可能想要完成Table Views Programming Guide,这将详细介绍所有这些问题。

答案 4 :(得分:0)

也许解决问题的另一种方法是使用数组控制器并将表列绑定到数组控制器。您的数组控制器可以控制字典数组,字典中的每个键代表表视图中的一列。

如果您有这样的设置,那么要清除表视图,只需清空阵列控制器控制的阵列。

答案 5 :(得分:0)

@Rob Napier,来自AppleScript Studio的数据源确实是一个对象,它存储我的信息,我只是无法访问它,因为它是用另一种语言编写的,但毕竟它是同一个对象。它不是我获取数据行的地方,而是它们存储的位置。

答案 6 :(得分:0)

在你的方法中:

- (UITableViewCell *)tableView:(UITableView *)tableVIew cellForRowAtIndexPath:(NSIndexPath *)indexPath 

是这样的一行:

cell.textLabel.text = [**YourArray** objectAtIndex:indexPath.row];

因此,要使用Objective-C删除UITableView中的所有行,请使用以下两行:

**YourArray** = nil;

[tableView reloadData];