使用两个表 - 如何获取正确的行

时间:2013-05-31 15:39:14

标签: cocoa osx-mountain-lion

我有两个基于单元格的表格视图(项目和类别)。我正在尝试为每个行获取正确的行索引,以便我可以使用它们的数组。

到目前为止,我的代码是:

- (id) tableView:(NSTableView *)tableView
objectValueForTableColumn:(NSTableColumn *)tableColumn
         row:(NSInteger)row {
    //NSLog(@"%s", __FUNCTION__);

    if (tableView.tag == 0) {
        currentItem = [itemMutableArray objectAtIndex:row];
        NSString *itemTitle1 = [currentItem valueForKey:@"title"];
        return itemTitle1;
    } else {
        currentCategory  = [categoryMutableArray objectAtIndex:row];
        NSString *catName = [currentCategory valueForKey:@"name"];
        NSLog (@"currentCategory is %@", catName);
        return catName;
    }
}

但是对于每个表,返回的内容如下:

 currentCategory is Cat One
 currentCategory is Cat Three
 currentCategory is Cat One
 currentCategory is Cat Three
 currentCategory is Cat One
 currentCategory is Cat Three
 currentCategory is Cat Two
 currentCategory is Cat One
 currentCategory is Cat Three
...

我使用的是错误的方法,还是什么?感谢。

1 个答案:

答案 0 :(得分:1)

如果在同一个控制器中有多个表,最好为它们设置插座。

然后你可以用作:

- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

    if(tableView==myFirstTableViewOutlet){
      .....
    }
    else if(tableView==mySecondTableViewOutlet){
      .....
    }
}