Objective c NSOutlineView和ImageAndTextCell的问题
我有一个Objective c NSOutlineView和ImageAndTextCell的问题,objective-c,macos,cocoa,nsoutlineview,Objective C,Macos,Cocoa,Nsoutlineview,我有一个NSOutlineView,里面有项目(还有孩子) 以下是单元格修改代码: - (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item { if ([item isKindOfClass:[JQPage class]]) { [cell setImage
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];
}
}
下面是我需要的一个可视示例:
有什么想法吗?我不确定是否要把孩子们推到右边。您可能必须覆盖som e类函数 选择项目后,可以将图像切换为白色版本。我不知道NSOutlineView是否支持自动黑白切换,但如果支持,则必须使用以下内容设置背景样式
-(void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
[super setBackgroundStyle:NSBackgroundStyleLight];
}
关于图像,您需要的是NSImage setTemplate。从文件来看 Cocoa单元格利用模板图像的特性,即其简化的颜色方案和透明度的使用,以改善每个受支持状态下相应控件的外观 在这种情况下,图像将在选择时与其负片进行交换