gpt4 book ai didi

objective-c - NSOutlineView + DataSource 正确设置。如何添加ImageAndTextCell?

转载 作者:行者123 更新时间:2023-12-03 17:58:36 25 4
gpt4 key购买 nike

我已经正确设置了 NSOutlineView 及其数据源,并且运行良好。

它实际上是一个基本的文件资源管理器,显示特定路径的文件夹结构(文件夹、子文件夹等)。子文件夹根据需要加载(出于速度原因,只有展开文件夹项目时才会加载其内容)。

我想要的是知道如何轻松地添加对 ImageAndTextCell 类已有的支持,以便我可以将例如每个条目旁边的文件夹/文件图标...

感谢任何帮助。 (请不要指给我看文档;我已经研究了几乎所有内容;我需要的是一些做过这件事的人的建议,这样我只需添加到我现有的代码;而不必从头开始重写或完全改变逻辑...)

谢谢

这是*My Code * (我在格式化它时遇到了一些麻烦...所以我将其发布在 Snippet.MX 上)

<小时/>

按照建议进行操作后,所有大纲 View 项目的名称突然都没有出现...

enter image description here

最佳答案

文档是你的 friend ,但我知道有时是如此重要。

顺便说一句您需要为大纲 View 设置 ImageAndTextCell,您可以在窗口 Controller 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 委托(delegate)方法,在其中为特定列设置图像,如下所示(文件夹图标、文件 txt 图标、jpg 图标)。

在下面显示的代码中,我从我的单例 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]]];
}

}

关于objective-c - NSOutlineView + DataSource 正确设置。如何添加ImageAndTextCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com