Изменить цвет строки заголовка - Mac

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

Есть какой-либо способ сделать это?

2 ответа

Решение

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

Как изменить цвет строки заголовка NSWindow в OSX

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

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

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

Свифт Путь

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

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

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

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

Другие вопросы по тегам