Objective c NSOutlineView+;正确设置数据源。如何添加ImageAndTextCell?

Objective c NSOutlineView+;正确设置数据源。如何添加ImageAndTextCell?,objective-c,cocoa,datasource,nsoutlineview,Objective C,Cocoa,Datasource,Nsoutlineview,我已经用它的数据源正确地设置了一个NSOutlineView,它工作得很好 它实际上是一个基本的文件浏览器,显示特定路径(文件夹、子文件夹等)的文件夹结构。子文件夹按需加载(当文件夹项目展开时,出于速度原因,仅加载其内容) 我想知道的是如何轻松地添加对ImageAndTextCell类的支持,以便在每个条目旁边放置一个文件夹/文件图标 感谢您的帮助。(请不要指向文档;我已经研究了几乎所有的文档;我需要的是一些已经做过的人的建议,这样我就可以添加到现有代码中;而不必从头重写或完全更改逻辑……) 谢

我已经用它的数据源正确地设置了一个
NSOutlineView
,它工作得很好

它实际上是一个基本的文件浏览器,显示特定路径(文件夹、子文件夹等)的文件夹结构。子文件夹按需加载(当文件夹项目展开时,出于速度原因,仅加载其内容)

我想知道的是如何轻松地添加对ImageAndTextCell类的支持,以便在每个条目旁边放置一个文件夹/文件图标

感谢您的帮助。(请不要指向文档;我已经研究了几乎所有的文档;我需要的是一些已经做过的人的建议,这样我就可以添加到现有代码中;而不必从头重写或完全更改逻辑……)

谢谢

以下是(我在格式化它时遇到了一些问题,所以…所以我把它贴到了)


做了建议,所有大纲视图项的名称突然不出现


文档是你的朋友,但我知道有时是如此巨大

顺便说一句 您需要为outline视图设置ImageAndTextCell,您可以在窗口控制器init或awakeFromNib方法上进行设置,也可以直接(如果需要)在NSOutlineView子类上进行设置

在我的项目中,我有一个NSOutlineView子类,如下所示

// myOutlineView subclass

- (void)awakeFromNib {
    self.imageCell = [[ImageAndTextCell alloc] init];
    [self.imageCell setEditable: NO];
    NSTableColumn* leftColumn = [[self tableColumns] objectAtIndex:0];
    [leftColumn setDataCell: self.imageCell];
}
然后,您需要实现willDisplayCell委托方法,在该方法中为特定列设置图像,如下所示(文件夹图标、文件txt图标、jpg图标)

在下面显示的代码中,我从我的singleton VDIconUtils获得它,但是您可以简单地返回一个NSImage

- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
    [cell setDrawsBackground:NO];
    if ([[tableColumn identifier] isEqualToString:@"mycellname"]) {
        [cell setImage:[[VDIconUtils sharedIconUtils] iconForFolderStatus:fs :16 :[outlineView isItemExpanded:item]]];
    }

}

完全按照你的建议做了(我想我过去也试过),但什么也没发生。。。除大纲视图外,项目标题突然不出现。。。有什么想法吗?天哪。。。我成功了。怎么用?它必须是
[单元格设置图像:大小:
,而不是
[单元格设置图像:大小:
。在这上面花了这么多时间真是太傻了……你能帮我解决我的问题吗,这是我的帖子,我遵循同样的代码,bt我不能刷新它。一旦成功,一切都会好起来的。