0

我有一个NSOutlineView带有物品(和里面的孩子)。

这是单元格修改代码:

- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {

    if ([item isKindOfClass:[JQPage class]])
    {
        [cell setImage:[NSImage imageNamed:@"doc_empty_icon&16"] size:16.0];
    }
    else if ([item isKindOfClass:[JQElement class]])
    {
        [cell setImage:[NSImage imageNamed:@"brackets_icon&16"] size:16.0];
    }   
}

这是我需要的视觉示例:

在此处输入图像描述

有任何想法吗?

4

2 回答 2

0

您正在寻找有关图像的是 NSImage setTemplate。从文档中,

Cocoa 单元利用模板图像的特性——即它们简化的配色方案和透明度的使用——来改进相应控件在其支持的每个状态下的外观。

在这种情况下,图像将在选择时与其负片交换。

于 2014-05-12T19:33:01.613 回答
0

我不确定把孩子推到右边。您可能必须覆盖某些类函数。

选择该项目时,您可以将图像交换为白色版本。我不知道 NSOutlineView 是否支持自动黑白交换,但如果支持,您必须使用类似的设置背景样式

-(void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {


     [super setBackgroundStyle:NSBackgroundStyleLight];
}
于 2013-08-12T10:20:43.827 回答