在我的自定义NSTableCellView中,我以这种方式覆盖-(void)drawRect
(我这样做是因为我有NSWindow
的模式图片背景。我只需要显示NSLabel
在cellView中):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor clearColor] setFill];
NSRectFill(dirtyRect);
[super drawRect:dirtyRect];
}
我得到了这个结果,它使整个NSWindow
透明:
我想要像VOX mac app这样的结果(看看日食,你看到cellView是透明的父背景图像):
答案 0 :(得分:2)
我已经解决了我的问题:
我使用MMScroller库(请阅读它的设置过程),在xcode中有一些技巧:
我在tableView 属性检测器中检查了交替行。然后,只需将tableView背景颜色设置为属性检查器中的clearColor就可以完成这项工作。
答案 1 :(得分:0)
有两种方法可以改变细胞的颜色。 1)实施代表: -
- (void)tableView:(NSTableView *)tableView
willDisplayCell:(id)cell
forTableColumn:(NSTableColumn
*)tableColumn
row:(NSInteger)row
然后根据exract单元格值并使用setBackgroundColor
api。
2)第二种方法可以使用tableview的preparecellcolumn
api,它将返回单元格值,然后设置backgroundcolor
。