2011-08-14 42 views
0

許多應用程序(例如郵件)中使用的標準源視圖樣式邊欄在窗口處於活動狀態時具有藍色,而在另一種情況下處於非活動狀態時具有藍色 - 標題欄的狀態改變。根據窗口狀態設置視圖背景顏色

由於各種原因,我開發了一個自定義側欄,但仍然希望背景具有相同的效果。

這個想法是讓自定義NSView填充背景,並將其用作側欄的背景。我給它一個我想要設置的「活動」屬性,並且繪製方法相應地用兩個不同的漸變填充矩形。

現在,問題是:將這種視圖掛鉤到窗口狀態的最佳方式是什麼?

回答

1

蘋果在郵件應用程序中使用的這個「邊欄」是一個NSOutlineView。在界面生成器中,您還可以通過將「突出顯示」屬性設置爲「源列表」來使用此風格。

如果您想製作您自己的邊欄,您可以聽取windowapplication委託。有很多方法可以報告他們的狀態。

+0

感謝您的回答!我想我的懷疑是收到通知的最好方式。我的本能會告訴我它應該通過視圖或控制器的層次結構,並讓側邊欄控制器直接註冊以接收來自上層實體(如窗口或應用程序)的通知,這對我來說似乎是一條捷徑。但也許這是做到這一點的方法? – Monolo

+0

我只是將你的邊欄添加爲通知的觀察者。例如:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourMethod :) name:NSApplicationDidResignActiveNotification object:nil]; – lbrndnr