2015-03-28 6 views
0

Я работаю над Mac. Я блуждал, если можно изменить цвет заголовка в NSWindow? Я знаю, как удалить его, но проблема в том, что он удаляет три кнопки (закрытие, сведение к минимуму, изменение размера). Я хочу сохранить три кнопки, но избавиться от бара.Изменить цвет строки заголовка - Mac

Есть ли все равно для этого?

enter image description here

ответ

3

Да, это было сделано здесь на SO:

How to Change Color of NSWindow Title Bar in OSX

Они говорят, что один-ссылка ответы плохая форма здесь, но heck-- это делает в основном то, что вы спрашивая. И это работает ... Я пробовал это сам.

Пара замечаний: его код там работает только в окне NSApp по умолчанию ... так что вам нужно будет немного поработать, чтобы обобщить его на случай вашего/«любого» NSWindow. (Возьмите этот код, который он помещает в AppDelegate, и переместите его в свой собственный подкласс NSWindow или NSWindowController. Вероятно, контроллер.)

Также он говорит подклассу NSView с «MyTitleView», но в коде это фактически называемый «BlackTitlebarView» ... Просто выберите одно имя, будьте последовательным, и все в порядке. Кроме того, цвет текста заголовка находится в методе drawString: где у него [NSColor whiteColor]. Кроме того, он увлекается градиентами, которые вы увидите при запуске кода ... Если вам это не нужно или нужно, вы можете заменить куски своего кода более простым материалом, чтобы просто нарисовать один цвет ... но вы можете подумать об использовании причудливого материала так или иначе, так как вы получаете его бесплатно.

+0

Большое спасибо, спасибо :) – Supertecnoboff

+0

Ответы на одну ссылку обескуражены, потому что вы отвечаете за потомство, а не только за оригинального искателя. Нет никакой гарантии, что конкретная связь будет по-прежнему жить через год. Я не знаю, распространяется ли это на связь с StackOverflow. :-) –

+0

Вы сказали: «Я понятия не имею, распространяется ли это на связь при использовании StackOverflow», и кажется весьма разумным предположить, что он НЕ применяется к внутренней SO-ссылке. Если SO умирает, тогда проблема мертвых ссылок решает сам, n'est-ce pas? Поэтому я не хочу быть грубым, но я не вижу значения вашего комментария. – zeppenwolf

3

Swift Way

Я собирался немного сумасшедшие, пытаясь найти это, не мог поверить, когда я работал его, что это было только две линии, когда все эти ответы, которые я читал, так долго!

Im my class ViewController Я пошел в viewDidAppear и добавил к нему это.

override func viewDidAppear() { 
     view.window?.titlebarAppearsTransparent = true 
     view.window?.backgroundColor = NSColor.clearColor() 
    } 

Так невероятно просто.

+0

Интересно, я попробую это. Благодарю. – Supertecnoboff

+0

да дайте мне знать, как это происходит для вас, потому что многие из тех, что я пытался, случались для меня! – Steve