Xcode & Swift - Окно без заголовка, но с кнопками "закрыть", "Свернуть" и "Изменить размер"
В настоящее время я использую Swift в Xcode 6, Beta 5.
Я пытаюсь удалить строку заголовка или любую видимую разницу между заголовком и фактическим содержимым. Если я включу "Унифицированный заголовок и панель инструментов" в Инспекторе атрибутов в окне, ничего явно не произойдет. Я уже покинул титул.
Если заголовок не введен, строка заголовка будет по-прежнему различима из-за границы линии и фоновой разницы с остальной частью окна, отделяя ее от фактического содержимого.
Прекрасным примером может служить текущее приложение Yosemite, OS X 10.10, Notes. Никакая строка заголовка не видна или не различима, просто кнопки Close, Minimize и Resize, как показано здесь.
![Screenshot of Notes window]()
Я искал и посещал другие сообщения, но ни к чему не помог.
Те, кто упоминал, скрывали заголовок в целом, но я не знал бы, как правильно вручную добавить кнопки Close, Minimize и Resize, что означает, что они будут выглядеть корректно, без фактических, скрытых замен и заметок изображений с панелью меню Close, Minimize и Resize.
Ответы
Ответ 1
Новая маска стиля окна NSFullSizeContentViewWindowMask
, добавленная в OS X 10.10, сделает трюк.
self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;
Примечания к выпуску
Ответ 2
Для 10.10+ вы можете использовать их:
window.titlebarAppearsTransparent = true
window.movableByWindowBackground = true
В Йосемити был официальный образец проекта для оформления окна. Вы можете проверить это.
Ответ 3
Для Swift 3: -
self.window.titleVisibility = .hidden
self.window.titlebarAppearsTransparent = true
self.window.styleMask.insert(.fullSizeContentView)
Ответ 4
Вы можете использовать их:
override func viewDidAppear() {
super.viewDidAppear()
self.view.window?.titlebarAppearsTransparent = true
self.view.window?.movableByWindowBackground = true
}
Ответ 5
У меня недостаточно репутации, чтобы комментировать ответ Ranfei Songs, но, работая на OSX 10.12, синтаксис titleVisibility немного отличается, вместо этого:
self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
вам нужно будет использовать NSWindowTitleHidden, поэтому обновление кода Ranfei приведет к тому, что вам нужно будет указать это следующим образом:
self.window.titleVisibility = NSWindowTitleHidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;
Ответ 6
Обновление сентябрь 2017, taget 10.11:
override func viewDidAppear() {
super.viewDidAppear()
self.view.window?.titleVisibility = .hidden
self.view.window?.titlebarAppearsTransparent = true
self.view.window?.styleMask.insert(.fullSizeContentView)
}