2014-03-13 165 views
2

我想自定義浮動組行背景的繪製,不能這樣做。基本上我想要一個部分透明的背景(當滾動或不滾動時總是保持相同的外觀),但是當表格視圖不滾動時(儘管滾動它看起來像預期的那樣),某些東西會改變NSTableRowView的子類的外觀。 下面是代碼和解釋問題的圖像。如何繪製半透明的NSTableRowView?

- (void)drawBackgroundInRect:(NSRect)dirtyRect 
{ 
    [[NSColor colorWithCalibratedWhite:1.0 alpha:0.5] set]; 
    [[NSBezierPath bezierPathWithRect:dirtyRect] fill]; 
} 

對於表格單元格視圖我試着用NSTableCellView是NSView和簡單的NSTextField(這是你的圖片上看到的一個),但結果總是相同的。

​​

回答

2

我可以通過打開標題單元格視圖及其表格視圖上的Core Animation圖層來修復它。

0

如果你不這樣做比填充行的背景顏色等什麼,你應該設置的NSTableRowViewbackgroundColor屬性,而不是覆蓋-drawBackgroundInRect:

如果你確實需要這個覆蓋來進一步定製,我注意到你忘記了在你的實現中調用[super drawBackgroundInRect:dirtyRect],這可能會對你所看到的行爲負責。

+1

您的意思是.backgroundColor?如果是這樣,那麼我試圖設置它,但它總是通過表視圖重置。如果我在drawBackgroundInRect中調用super,那麼它首先繪製默認的灰色背景,然後在灰色背景上繪製我的半透明覆蓋圖。 – Indoor

+0

是的,抱歉,這就是我的意思。 – indragie