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
Macos OS X上基于视图的表格单元格未正确显示数据_Macos_Cocoa_Nstableview_Nstableviewcell - Fatal编程技术网

Macos OS X上基于视图的表格单元格未正确显示数据

Macos OS X上基于视图的表格单元格未正确显示数据,macos,cocoa,nstableview,nstableviewcell,Macos,Cocoa,Nstableview,Nstableviewcell,所以我承认自己是可可豆的不速之客,所以我提出了一个不速之客的问题。我可能只是错过了一些明显的地方,但我似乎无法让我的表填充数据 我遵循这个示例,但每次我尝试模拟基本的TableView窗口时,第一行就变成了我添加的行数的高度(至少看起来是这样的。下面是我的代码: - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row { NSS

所以我承认自己是可可豆的不速之客,所以我提出了一个不速之客的问题。我可能只是错过了一些明显的地方,但我似乎无法让我的表填充数据

我遵循这个示例,但每次我尝试模拟基本的TableView窗口时,第一行就变成了我添加的行数的高度(至少看起来是这样的。下面是我的代码:

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
    NSString *identifier = [tableColumn identifier];
    if ([identifier isEqualToString:@"filename"]) {
        // We pass us as the owner so we can setup target/actions into this main controller object
        NSTableCellView *cellView = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
        // Then setup properties on the cellView based on the column
        cellView.textField.stringValue = [fileList filenameAtIndex:row];
        cellView.imageView.objectValue = [[NSWorkspace sharedWorkspace] iconForFile:[fileList fullPathAtIndex:row]];
        return cellView;
    }
    else if ([identifier isEqualToString:@"path"]) {
        NSTextField *textField = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
        textField.objectValue = [fileList pathAtIndex:row];
        return textField;
    }
    else if ([identifier isEqualToString:@"preview"]) {
        NSTextField *textField = [fileBrowserTable makeViewWithIdentifier:identifier owner:self];
        textField.objectValue = [fileList previewAtIndex:row];
        return textField;
    }
    return nil;
}
我认为值得一提的是,当使用老式的文本字段单元格时,我在显示数据方面没有问题(当然,在这种情况下,上面的代码是不同的),因此我确信保存这些值的数据结构没有问题。我还设置了正确的委托和数据源

使用“filename”标识符的单元格使用“image and text table view”单元格,而其他单元格仅使用“text table cell view”单元格。两者都不起作用,因此我猜我的表设置方式有问题。但是,当将我的表与示例的表进行比较时,这只是一个简单的反映(减去标识符文件名)

我注意到一件我不能完全弄明白的事情是,这个例子说:

NSTableView有两个重用标识符关联:“MainCell”和“SizeCell”都与nib ATBasicTableViewCells.xib关联


我真的不明白这句话。尽管如此,这个示例不包含任何ATBasicTableViewCells.xib,也没有我能找到的任何关联(代码或ib)。

您是否尝试将
NSTableView
的rowSizeStyle设置为
NSTableViewRowSizeStyleCustom

[更新]重新阅读您的问题,我不清楚您的问题是什么。我给出的解决方案与每个单元格的大小有关,除非rowSizeStyle设置为custom,否则不会考虑这些问题。

您是否尝试将
NSTableView
的rowSizeStyle设置为
nstableviewsrowsizestylecustom
? [更新]重新阅读您的问题,我不清楚您的问题是什么。我给出的解决方案与每个单元格的大小有关,除非rowSizeStyle设置为custom,否则不会考虑这些问题