2010-05-09 48 views
2

這個問題之前肯定有人問過,但Google之後我仍然找不到答案。改變可可中標題欄的顏色

如何更改標題欄的顏色(您可以單擊並拖動鼠標左鍵,最小化和最大化按鈕)爲不同於Cocoa默認灰色的顏色?

+0

請仔細考慮你爲什麼試圖這麼做。 – 2010-05-09 23:48:49

回答

11

如果您設置了「紋理」窗口的背景顏色(這種區別並非真正在Snow Leopard中可見),該顏色也將應用於標題欄。這就是Firefox所做的。

我會建議,雖然沒有一個真正的標題欄(即設置您的窗口沒有標題欄),並使用+[NSWindow standardWindowButton:forStyleMask:]並將您自己的按鈕放在「標題欄」。這可以讓你更多的控制,並且不太冒昧。

+0

你是怎麼建議設置窗口沒有標題欄的?您是否指的是創建一個自定義無邊框窗口? – Dalmazio 2012-01-31 07:35:00

3

如果它是panel,可以將其更改爲黑色,例如將其實例化爲HUD window

否則,你不能。是否注意到在其他應用程序中沒有任何帶有不同顏色標題欄的Aqua窗口?這就是爲什麼。

唯一的其他方法來改變標題欄的外觀(不依賴於私人實現細節諸如幀視圖的存在)是使窗口的無邊界和至多創建從地面其標題欄和窗口按鈕。

+0

啊。那麼firefox如何使用Personas呢?我一直很好奇。 – Vervious 2010-05-09 19:04:27

+0

哦,我看到Firefox可能建立了它自己的窗口 – Vervious 2010-05-09 19:25:10

0

如果你不介意私人API,你可以繼承NSThemeFrame。

+3

不要。不要。 :(有更好的方法。 – 2010-05-10 01:13:41

+0

http://stackoverflow.com/questions/1665147/how-to-custom-draw-window-title-bar-in-objective-c/1665421#1665421 – 2013-03-13 20:28:49

+2

如果你不介意私人API,你應該。 – rid 2013-05-20 10:59:05

1

如果按照Colin的方法在界面生成器中製作窗口紋理(窗口屬性中的複選框),可以使用下面這行代碼來更改您在AppDelegate的此函數中放置的窗口的背景顏色.m文件

//在這個函數---> - (無效)的applicationDidFinishLaunching:(NSNotification *)aNotification

//鍵入此 [_window setBackgroundColor:NSColor.whiteColor];