2015-04-04 49 views
29

我正在製作一個應用程序,該應用程序在NSStatusBar上有一個自定義NSView,該應用程序在用戶單擊它時執行所有繪圖。但問題在於,我正在繪製顏色,因爲視圖的背景顏色與系統藍色不同。如何訪問系統選擇的菜單項藍色?

我的應用程序的顏色:
enter image description here

Twitter的菜單項顏色(系統):
enter image description here

正如你清楚地看到,我的藍色比系統的方式輕。這是我目前使用的代碼(和舊版本比優山美地的工作完美):

[[NSColor selectedMenuItemColor] set]; 
NSRectFill(rect); 

我甚至試過顏色選擇菜單項的顏色,但它似乎喜歡的顏色是由下面的壁紙影響菜單欄。
關於如何實現系統的任何想法?

+0

你確定Twitter正在使用'selectedMenuItemColor'嗎?也許他們使用不同的東西? – Eun 2015-04-27 15:00:29

+0

我只是展示了一個使用所選菜單欄項目的系統顏色的示例,並且Twitter使用與其他內置小部件(如Wi-Fi和電池)相同的顏色。我在舊版OS X上一直使用'selectedMenuItemColor',並且一直按預期工作,而不是在Yosemite上。 – 2015-04-27 17:12:38

回答

6

正如你所說,在優勝美地,碼頭,狀態欄等受到背後的任何影響。嘗試啓用System Preferences > Accessibility > Display > Reduce Transparency,您將看到沒有此功能的情況下您的顏色。/

+0

這似乎是個好主意,但不幸的是這並不奏效。當我再次打開它時,顏色就會消失。 – 2015-04-15 02:13:35

+0

我的意思是說,把它*關*(降低透明度) – 2015-04-22 22:22:42