Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSArrayController填充NSTableView,但不';t设置单元格标题_Objective C_Cocoa_Nstableview_Nstablecolumn_Nstablecellview - Fatal编程技术网

Objective c NSArrayController填充NSTableView,但不';t设置单元格标题

Objective c NSArrayController填充NSTableView,但不';t设置单元格标题,objective-c,cocoa,nstableview,nstablecolumn,nstablecellview,Objective C,Cocoa,Nstableview,Nstablecolumn,Nstablecellview,我有一个两列的NSTableView,我想用从CSV文件抓取的条目填充它。除了未设置每个表单元格的标题外,其他一切正常 下面是为NSArray中的每一行调用的函数 - (void)populateTable:(NSString *)fname :(NSString *)lname { NSMutableDictionary *value = [[NSMutableDictionary alloc] init]; [value setObject:[NSString stringW

我有一个两列的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];
}
“姓氏”列的值绑定到数组控制器排列对象。姓氏以及“名字”和“姓氏”都列为数组控制器>对象控制器>键列表中的键

创建了适当数量的表格单元格(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行/单元格,全部标题为“表视图单元格”

编辑:

经过一些检查后,我注意到表列的
绑定下的
模型键路径
没有任何条目。当我输入first\u namelast\u name时,它会显示未找到补全项,即使键列在阵列控制器的
键列表中。不幸的是,我不知道它为什么找不到钥匙

编辑:


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

您可以在Interface Builder中的表格标题处设置标题。您可以双击表格列标题并为其设置标题。

重新创建项目的方式与创建项目的方式完全相同,从而产生预期的结果。我不知道为什么要重做,但它成功了。

显示创建单元格的代码。这就是上面的代码。绑定到NSTableView列的数组控制器被告知添加具有标识符键的对象。它做得很好,但不是得到一个姓氏列,结果像“Smith”、“Johnson”和“Stevenson”,而是得到“表视图单元格”、“表视图单元格”和“表视图单元格”。这段代码将只设置数组,我想要这个方法代码-(UITableViewCell*)tableView:(UITableView*)tableView单元格for RowAtIndexPath:(NSIndexPath*)我对此没有任何解释。阵列控制器将数据添加到populateTable中,然后使用来自阵列控制器的数据重新加载表视图这是基于视图的表还是基于单元格的表?哦,不,我有那个集合和所有内容。我正在做的是在应用程序启动时加载一个CSV文件,并为CSV文件中的每一行在表列中创建一个单元格。它应该将单元格的标题(默认为“表视图单元格”)设置为CSV文件中相应的数据,但它没有。当我对对象
值执行NSLog时,它会显示正确的数据,但每个表单元格的标题不会更改。我还不能在这里使用图像,但这就是我的意思:好的,你可以使用
@property(retain,nonatomic,readwrite)IBOutlet NSArrayController*arraycontroller然后
[[[self arraycontroller]selection]设置值:fname forKeyPath:@“first_name”][
[[self arraycontroller]选择]设置值:lnameforKeyPath:@“姓氏”]我刚刚尝试应用您的更改,但仍然得到相同的结果