Как сделать NSTableView прозрачным? - PullRequest
12 голосов
/ 15 сентября 2011

Я хочу сделать прозрачным 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];
}

Но когда я писал этот код, я не смог найти enclosingScrollView в окне справки.
вы можете увидеть здесь ..

enter image description here

Любая помощь ??Пожалуйста, помните меня или поправьте меня, если я делаю что-то не так.
Спасибо.

Ответы [ 3 ]

6 голосов
/ 09 января 2014

Если у вас есть NSScrollView, заключающий в себе NSTableView, вы можете установить свойство drawsBackground представления прокрутки на NO следующим образом:

yourScrollView.drawsBackground = NO;

5 голосов
/ 24 июня 2015

получил ответ .. !!! Я только что попробовал это

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

и работает нормально .. - - Snehal

Скопировано из комментария в вопросе, так как его немного похоронили ...

1 голос
/ 04 декабря 2017

Если вашему приложению требуется отображать прозрачное табличное представление , установите цвет фона табличного представления, чтобы быть чистым, и установите в представлении прокрутки вложения, чтобы не рисовать его фон. В следующем фрагменте кода показан один из способов отображения прозрачной таблицы:

Swift:

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

Objective-C

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

Apple - Изменение визуальных атрибутов таблицы

...