2011-09-15 33 views
12

我想制作透明的NSTableView。
我在这里使用WindowController类。
我是想这样的:如何使NSTableView透明?

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

} 

- (BOOL)isOpaque { 

     return NO; 
} 
- (void)drawRect:(NSRect)drawRect 
{ 
    [super drawRect: drawRect]; 
} 

但是,当我在写这段代码在帮助窗口,我不能找到enclosingScrollView
你可以看到这里..

enter image description here

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

+4

得到回答.. !!!我只是尝试这样做 '[tableview中setBackgroundColor:[NSColor clearColor];'' [tableview中setHeaderView:无];' 及其工作很好.. – iUser

+0

这个工作对我来说也是如此。具体将背景色设置为clearColor – harryhorn

回答

4

Got Answer .. !!!我只是尝试这样做

[tableview setBackgroundColor:[NSColor clearColor]]; 
[tableview setHeaderView:nil]; 

及其工作很好.. - - Snehal

从,有关意见作为其有点埋葬......

6

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

yourScrollView.drawsBackground = NO;

0

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

夫特:

yourTableView.backgroundColor = NSColor.clear 
yourTableView.enclosingScrollView?.drawsBackground = false 

目标C

[theTableView setBackgroundColor:[NSColor clearColor]; 
[[theTableView enclosingScrollView] setDrawsBackground:NO]; 

Apple - Modifying a Table’s Visual Attributes