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