0

我有一个两列 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];
}

"last name" 列的值绑定到 Array Controller排列对象.last_name 并且 "first_name" 和 "last_name" 都被列为Array Controller > Object Controller > Keys列表中的键

创建了适当数量的表格单元格(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 PathValue绑定下没有任何条目。当我输入first_namelast_name时,即使键列在数组控制器的列表中,它也会显示未找到完成。Keys不幸的是,我不知道为什么它没有找到钥匙。

编辑:

奇怪的。我尝试删除和添加表视图和数组控制器,但没有奏效。但是,创建一个新项目并执行完全相同的操作会产生预期的结果。

4

2 回答 2

0

您可以在 Interface Builder 中的表格标题处设置标题。您可以双击表格列标题并为其设置标题。像这样我们可以将标题设置为表格列

于 2012-10-23T04:42:54.453 回答
0

以与我完全相同的方式重新创建项目会产生我所期望的结果。我不确定为什么重做这一切都有效,但确实有效。

于 2012-10-25T05:35:58.070 回答