2016-03-01 4 views
4

ExampleКак окрасить строку заголовка OS X приложение с быстрым

Я использую Xcode 7.2.1 с Swift 2 для разработки OS X приложение. Я хочу, чтобы приложение было заполнено цветом. Как это сделать, как на примере выше?

Я сделал это, чтобы избавиться от заголовка:

override func viewDidAppear() { 
    super.viewDidAppear() 

    self.view.wantsLayer = true 


    self.view.window?.titlebarAppearsTransparent = true 
    self.view.window?.movableByWindowBackground = true 
    self.view.window?.titleVisibility = NSWindowTitleVisibility.Hidden 

} 
+0

вы приняли ответ mangerlahn в; как вы вернули кнопки минимизации? – theonlygusti

+0

Чтобы вернуть кнопки, удалите строку 'self.view.window? .styleMask = NSWindowStyleMask.texturedBackground' @theonlygusti это для обновленного swift –

ответ

6

Alternative

Если вы хотите только установить цвет фона для всей NSWindow и скрыть строку заголовка, вы можете установить его styleMask к текстурированной:

self.view.window?.styleMask = NSTexturedBackgroundWindowMask 
self.view.window?.backgroundColor = NSColor.redColor() 

преимущество этого: Он имеет обратную совместимость по крайней мере OS X 10.6

+0

Спасибо, это работает. Но потом я теряю близко, сворачиваю кнопки. Как мне вернуть их? – Grinch

+0

Ничего, теперь это работает. – Grinch

+0

Куда уходит этот код? – theonlygusti

-1

Добавить пользовательский подвид с цветом фона. Или (лучше) установить этот пользовательский вид в качестве представления содержимого вашего окна.

3

Если я перееду ваш «избавиться от заголовка» кода в AppDelegate и устанавливает window.backgroundColor так:

import Cocoa 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow! 

    func applicationDidFinishLaunching(aNotification: NSNotification) { 
     // Insert code here to initialize your application 

     window?.titlebarAppearsTransparent = true 
     window.movableByWindowBackground = true 
     window.titleVisibility = NSWindowTitleVisibility.Hidden 
     window.backgroundColor = NSColor.redColor() 

     let viewController = ViewController() 
     window.contentViewController = viewController 
    } 

    func applicationWillTerminate(aNotification: NSNotification) { 
     // Insert code here to tear down your application 
    } 
} 

, а затем просто установить цвет в контроллере представления, а также:

override func viewDidLoad() { 
    super.viewDidLoad() 
    view.wantsLayer = true 
    view.layer?.backgroundColor = NSColor.redColor().CGColor 
} 

Я заканчиваю с этим окном enter image description here

самое смешное, что я должен установить цвет в боте ч место, поэтому, возможно, решение @ Joshua-nozzi ПРЕДЛАГАЕТ является безопасной ставкой

+0

Извините, я действительно новичок в программировании. Когда я добавляю код, который вы написали в AppDelegate.swift, компилятор жалуется, что «окно» - это неразрешенный идентификатор. – Grinch

+0

OK. У меня есть выход в окно типа NSWindow, и похоже, что нет. Как выглядит ваш «AppDelegate»? – pbodsk

+0

Ну, я никогда раньше не использовал его, поэтому он пуст :-) – Grinch

Смежные вопросы