2011-09-15 36 views
12

Tôi muốn tạo NSTableView trong suốt.
Tôi đang sử dụng lớp WindowController tại đây.
Tôi đã cố gắng này:Làm thế nào để làm cho NSTableView trong suốt?

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

} 

- (BOOL)isOpaque { 

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

Nhưng khi tôi đang viết mã này tôi không thể tìm thấy enclosingScrollView giúp cửa sổ.
bạn có thể xem tại đây ..

enter image description here

Bất kỳ sự giúp đỡ ?? Hãy nhớ tôi hoặc sửa tôi nếu tôi làm sai điều gì đó.
Cảm ơn bạn.

+4

Got trả lời .. !!! Tôi chỉ thử điều này '[tableview setBackgroundColor: [NSColor clearColor]];' '[tableview setHeaderView: nil];' và làm việc tốt. – iUser

+0

điều này cũng phù hợp với tôi. đặt màu nền thành màu rõ ràng – harryhorn

Trả lời

4

Đã trả lời .. !!! Tôi chỉ cố gắng này

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

và làm việc tốt của nó .. - - Snehal

sao chép từ bình luận trong câu hỏi, như nó một chút chôn ...

6

Nếu bạn có một NSScrollView kèm của bạn NSTableView, bạn có thể thiết lập thuộc tính drawsBackground xem di chuyển để NO như thế này:

yourScrollView.drawsBackground = NO;

0

Nếu ứng dụng của bạn cần phải hiển thị một xem bảng trong suốt, đặt màu nền của chế độ xem bảng phải rõ ràng và đặt chế độ xem cuộn kèm theo để không vẽ nền của nó. Đoạn mã sau đây cho thấy một cách để hiển thị một bảng trong suốt:

Swift:

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

Objective-C

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

Apple - Modifying a Table’s Visual Attributes

Các vấn đề liên quan