2010-11-10 101 views
0

我有一個標準的NSPanel設置爲HUD風格。我想更改背景顏色,主要是因爲我想要一個工具欄,並且沒有看到任何方法使HUD上的標準nstoolbar看起來不錯,也沒有直接定製工具欄背景的方法。可可HUD窗口:刪除透明度?

我意識到創建完全自定義窗口的多種方式,並在其他情況下使用這些窗口。在這種情況下,我想要一個窗口提供的所有優點,但我不想透明。有趣的是,我可以改變背景顏色,但不是阿爾法。設置阿爾法值對窗口沒有影響。

之前有人解決過這個問題嗎?

回答

0

設置面板的內容視圖的(只需點擊面板內給它,而不是標題欄選擇)子類SGPanelView並作出SGPanelView這個實現類的的drawRect方法:SGPanelView是NSView的一個子類:

- drawRect:(NSRect)dirtyrect { 
    [[NSColor blackColor] set]; 
    [NSBezierPath fillRect:[self bounds]]; 
} 

應該工作。如果不工作,請嘗試將bounds更改爲frame


有關更多信息,請參閱http://developer.apple.com/library/mac/#documentation/cocoa/reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html

+0

不能做 - 工具欄實際上不是contentView繪圖的一部分。工具欄直接繪製窗口的背景,而不是內容視圖。 – SG1 2010-11-15 19:19:28

+0

使用'[[window contentView] superView]'來獲得窗口的視圖。請注意,您必須更改rect,因爲它包含標題欄。 – 2010-11-15 19:33:17