【发布时间】:2012-10-23 03:57:53
【问题描述】:
我有一个两列 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];
}
“姓氏”列的值绑定到阵列控制器arrangedObjects.last_name,并且“first_name”和“last_name”都列为阵列控制器>对象中的键控制器 > 按键 列表
创建了适当数量的表格单元格(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 时,它会显示 No completions found,即使键列在数组控制器的 Keys 列表中。不幸的是,我不知道为什么它没有找到密钥。
编辑:
奇怪。我尝试删除和添加表视图和数组控制器,但没有奏效。但是,创建一个新项目并执行完全相同的操作会产生预期的结果。
【问题讨论】:
-
显示您创建单元格的代码。
-
就是上面的代码。绑定到 NSTableView 列的数组控制器被告知添加一个带有标识符键的对象。它做得很好,但我没有得到一个带有“Smith”、“Johnson”和“Stevenson”等结果的姓氏列,而是得到了“表格视图单元格”、“表格视图单元格”和“表格视图单元格”。
-
这段代码只会设置数组,我要这个方法代码——(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-
我对此无能为力。数组控制器将数据添加到 populateTable 中,表格视图会重新加载来自数组控制器的数据
-
这是基于视图还是基于单元格的表格?
标签: objective-c cocoa nstableview nstablecolumn nstablecellview