gpt4 book ai didi

cocoa - 从同一类中的两个不同的 NSMutableArray 填充两个 NSTableView

转载 作者:行者123 更新时间:2023-12-03 17:43:15 24 4
gpt4 key购买 nike

我在使用一个类中两个不同 MutableArray 的数据填充两个 TableView 时遇到困难。我正在解析 *.xml 文档,并希望将数据放入不同的 TableView 中。在“ TableView 编程指南”的“使用表数据源”一章中,它指出“管理多个数据集的数据源对象可以根据发送消息的 NSTableView 对象选择适当的数据集”。我理解这意味着我可以从同一类中的两个不同的可变数组填充两个不同的 TableView 。我似乎无法弄清楚如何执行此操作,因为除了上面引用的内容之外,我找不到更多信息。

我的桌面 View 填充代码是:

- (int)numberOfRowsInTableView:aTableView {  
return [arrayPowerData count];
}

- (id)tableView:aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)row {
PowerData* dataPower = [arrayPowerData objectAtIndex:row];
return [dataPower valueForKey:[aTableColumn identifier]];
}

我知道两个数组中都有数据,因为我可以在上面的代码中切换数组变量,并且它会填充适当的表格 View 。

[blockTableView reloadData];  
[dataTableView reloadData];

我尝试了数组 Controller /绑定(bind)路线,但即使我没有收到任何错误消息或警告,TableView 也不会被填充。

我是 Cocoa/Objective-c 编程的新手,根本不是真正的程序员,因此,任何帮助和/或指导将不胜感激。

最佳答案

本质上,这里发生的事情是两个表在填充时都调用这些函数。当发生这种情况时,它们将自己作为 TableView 参数aTableView传递。因此,为了使用相同的方法填充两者,您需要过滤出当前正在调用该方法的 TableView 。基本思想如下:

- (int)numberOfRowsInTableView:aTableView {  
if (aTableView == tableview1) {
return [array1 count];
}
else if (aTableView == tableview2) {
return [array2 count];
}
}

-(id)tableView:aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)row {
if (aTableView == tableview1) {
//populate tableview1 with the corresponding array
}
else if (aTableView == tableview2) {
//populate tableview2 with the other array
}
}

关于cocoa - 从同一类中的两个不同的 NSMutableArray 填充两个 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6161443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com