2010-05-09 1 views
2

Это, должно быть, было задано раньше, но после Googling я до сих пор не могу найти ответ.Изменить цвет заголовка в какао

Как изменить цвет строки заголовка (панель, которую вы можете щелкнуть и перетащить с помощью кнопок «закрыть», «свернуть» и «увеличить») до другого цвета, чем серый цвет по умолчанию в какао?

+0

Пожалуйста, подумайте очень долго и упорно о том, почему вы пытаетесь это сделать. –

ответ

11

Если вы установили цвет фона «текстурированного» окна (это не совсем то, что видно на Snow Leopard), этот цвет будет применен и к заголовку. Это то, что делает Firefox.

Я бы порекомендовал, хотя у меня не было реального заголовка (т. Е. У вас не было окна заголовка) и с помощью +[NSWindow standardWindowButton:forStyleMask:] и ввода собственных кнопок в «заголовок». Это позволяет вам более эффективно управлять, а путь менее хакен.

+0

Как именно вы предлагаете установить окно без заголовка? Вы имеете в виду создание пользовательского окна без полей? – Dalmazio

3

Если это panel, вы можете изменить его на черный, создавая его как HUD window.

В противном случае вы не можете. Вы когда-нибудь замечали, что в других приложениях нет обоев Aqua с разноцветными заголовками? Вот почему.

Единственный способ изменить внешний вид строки заголовка (не полагаясь на частные детали реализации, такие как наличие вида кадра) - сделать окно без полей и создать его панель заголовка и кнопки окна с нуля ,

+0

Ах. Как Firefox делает это с его персонажами? Мне всегда было любопытно. – Vervious

+0

О, я вижу, что firefox, вероятно, построил собственное окно – Vervious

0

Если вы не против частного API, вы можете подклассифицировать NSThemeFrame.

+3

Не надо. Только не надо. :(Есть лучшие способы. –

+0

http://stackoverflow.com/questions/1665147/how-to-custom-draw-window-title-bar-in-objective-c/1665421#1665421 –

+2

Если вы не против частные API, вы должны. – rid

1

Если вы идете с подходом Колина сделать окно текстурированным в конструкторе интерфейса (флажок в атрибутах окна), вот строка, чтобы изменить цвет фона окна, которое вы положили бы в эту функцию appDelegate .m файл

// В этой функции ---> - (недействительными) applicationDidFinishLaunching: (NSNotification *) aNotification

// введите этот [_window setBackgroundColor: NSColor.whiteColor];