NSTableCellView透明背景

时间:2013-10-20 06:07:34

标签: macos cocoa nstableview nstablecellview

在我的自定义NSTableCellView中,我以这种方式覆盖-(void)drawRect(我这样做是因为我有NSWindow模式图片背景。我只需要显示NSLabel在cellView中):

- (void)drawRect:(NSRect)dirtyRect
{
    [[NSColor clearColor] setFill];
    NSRectFill(dirtyRect);
    [super drawRect:dirtyRect];
}

我得到了这个结果,它使整个NSWindow透明:

enter image description here

我想要像VOX mac app这样的结果(看看日食,你看到cellView是透明的父背景图像):

enter image description here

2 个答案:

答案 0 :(得分:2)

我已经解决了我的问题:
我使用MMScroller库(请阅读它的设置过程),在xcode中有一些技巧:

我在tableView 属性检测器中检查了交替行。然后,只需将tableView背景颜色设置为属性检查器中的clearColor就可以完成这项工作。

enter image description here

答案 1 :(得分:0)

有两种方法可以改变细胞的颜色。 1)实施代表: -

- (void)tableView:(NSTableView *)tableView 
  willDisplayCell:(id)cell 
  forTableColumn:(NSTableColumn     
    *)tableColumn 
     row:(NSInteger)row

然后根据exract单元格值并使用setBackgroundColor api。

2)第二种方法可以使用tableview的preparecellcolumn api,它将返回单元格值,然后设置backgroundcolor