在NSTableView中为每行显示不同的值

时间:2011-03-11 21:48:36

标签: xcode cocoa object nstableview

我正在尝试创建一个具有NSTableView的程序,我可以添加和删除值,并且对于每个值,它将存储一些不同的变量,当用户选择时,这些变量将显示在文本框中表中的项目。我已经编写了代码来添加和删除值,但似乎无法找到让其余功能工作的方法。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我建议您将tableview数据源(对象数组)中的每个元素表示为NSDictionary。这使您可以为每个tableview项保留多个变量,这些变量可以在单击项时显示在文本框中。 Apple有一个很好的例子来说明我认为你想要做的事情。看看NSTableViewBinding example。在该示例中,当用户双击tableview中的项时,将调用inspect方法。您可以使用此方法在文本框中的字典中显示变量:

- (void)inspect:(NSArray *)selectedObjects

{

// this is an example of inspecting each selected object in the selection
int index;
int numItems = [selectedObjects count];
for (index = 0; index < numItems; index++)
{
    NSDictionary *objectDict = [selectedObjects objectAtIndex:index];
    if (objectDict != nil)
    {
        NSLog(@"inspect item: {%@ %@, %@}",
              [objectDict valueForKey:@"firstname"],
              [objectDict valueForKey:@"lastname"],
              [objectDict valueForKey:@"phone"]);
                    [myTextBox1 setStringValue:[objectDict valueForKey:@"firstname"]];
                    [myTextBox2 setStringValue:[objectDict valueForKey:@"lastname"]];
    }
}

}