NSArrayController填充NSTableView但不设置单元格标题

时间:2012-10-23 03:57:54

标签: objective-c cocoa nstableview nstablecolumn nstablecellview

我有一个两列NSTableView,我想填充从CSV文件中获取的条目。除了没有设置每个表格单元格的标题外,一切正常。

这是为NSArray

中的每一行调用的函数
- (void)populateTable:(NSString *)fname :(NSString *)lname {
    NSMutableDictionary *value = [[NSMutableDictionary alloc] init];
    [value setObject:[NSString stringWithFormat:@"%@", fname] forKey:@"first_name"];
    [value setObject:[NSString stringWithFormat:@"%@", lname] forKey:@"last_name"];

    [arrayController addObject:value];
    [value release];
    [fname_list reloadData];
    [lname_list reloadData];
}

“姓氏”列的值绑定到阵列控制器 arrangeObjects.last_name ,“first_name”和“last_name”都列为阵列控制器&gt;中的键。 <对象控制器>密钥列表

创建适当数量的表格单元格(CSV文件中的3个条目=每列3行),但未设置每个单元格的标题(“first_name”或“last_name”取决于专栏);细胞的标题仍然是“表视图细胞”

修改

使用navinsillu的更改后,我最终得到以下功能:

- (void)populateTable:(id)sender :(NSString *)fname :(NSString *)lname {
    [arrayController insert:sender];
    [[[self arrayController] selection] setValue:fname forKeyPath:@"first_name"];
    [[[self arrayController] selection] setValue:lname forKeyPath:@"last_name"];

    [fname_list reloadData];
    [lname_list reloadData];
}

在我的标题中我有

@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;

但我仍然得到相同的结果:每个表格列中有3行/单元格,所有标题为“表视图单元格”

修改

经过一番检查后,我注意到表列的Model Key Path绑定下的Value没有任何条目。当我输入 first_name last_name 时,即使密钥列在数组的Keys列表中,也会显示未找到完成控制器。不幸的是,我不知道它为什么没找到钥匙。

修改

奇。我尝试删除并添加表视图和数组控制器,但这不起作用。但是,创建一个新项目并完成相同的操作会产生预期的结果。

2 个答案:

答案 0 :(得分:0)

您可以在Interface Builder的表格标题中设置标题。您可以双击表格列标题并为其设置标题。Like this we can set header t o table column

答案 1 :(得分:0)

以与我完全相同的方式重新创建项目会产生我期望发生的事情。我不确定为什么重做它都有效,但确实如此。