一次性从多个NSArray记录中填充NSTableView

时间:2012-04-17 08:00:24

标签: objective-c cocoa nstableview

如果我有一对多关系,我如何使用NSArray中的数据填充NSTableView?

假设我有一个名为“Alphabet”的数据项,我希望当用户从列表中选择它时,返回值为:

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

是不同行中的字母,一个在另一行之下。

能做到吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

您需要将对象指定为表视图的datasource并使该对象符合NSTableViewDataSource协议,或者您需要使用NSArrayController和Cocoa绑定。

如果您使用数据源,请实施numberOfItemsInTableView:方法并返回数组的count。您还必须实施-tableView:objectValueForTableColumn:row:

-(id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
    if(rowIndex > -1)
    {
        return [yourArray objectAtIndex:rowIndex];
    }
    return nil;
}