如何使NSTableView透明?

iUs*_*ser 12 macos transparency nstableview xcode4

我想制作透明的NSTableView.
我在这里使用WindowController类.
我在尝试这个:

- (void)windowDidLoad
{
     [super windowDidLoad];
     [[self enclosingScrollView] setDrawsBackground: NO];
     [[self enclosingScrollView] setBorderType:NSNoBorder];

}

- (BOOL)isOpaque {

      return NO;
} 
- (void)drawRect:(NSRect)drawRect
{
     [super drawRect: drawRect];
}
Run Code Online (Sandbox Code Playgroud)

但是当我写这个代码时,我无法enclosingScrollView在帮助窗口找到.
你可以看到..

在此输入图像描述

任何帮助?如果我做错了,请记住我或纠正我.
谢谢.

the*_*tic 6

如果你有一个NSScrollView封闭的NSTableView,你可以设置滚动视图的drawsBackground属性NO如下:

yourScrollView.drawsBackground = NO;


Tom*_*sen 6

得到答案.. !!! 我刚试过这个

[tableview setBackgroundColor:[NSColor clearColor]]; 
[tableview setHeaderView:nil]; 
Run Code Online (Sandbox Code Playgroud)

和它的工作正常.. - - Snehal

复制有问题的评论,因为它有点埋没...


moh*_*acs 5

如果您的应用程序需要显示透明的 table view,请将table view的背景颜色设置为清晰,并将封闭的滚动视图设置为不绘制其背景。以下代码片段显示了一种显示透明表格的方法:

迅速:

yourTableView.backgroundColor = NSColor.clear
yourTableView.enclosingScrollView?.drawsBackground = false
Run Code Online (Sandbox Code Playgroud)

目标-C

[theTableView setBackgroundColor:[NSColor clearColor];
[[theTableView enclosingScrollView] setDrawsBackground:NO];
Run Code Online (Sandbox Code Playgroud)

Apple - 修改表格的视觉属性