2017-05-05 5 views
2

Ich arbeite an einer MacOS App in Swift 3, wo ich die Titelleiste transparent machen möchte, und nicht den Titel meiner App, also im Grunde nur die 3 Tasten (schließen, verkleinern, Vollbild) auf meinem Hintergrund. Die Titelleiste eines Fensters komplett transparent machen

Was ich versucht die folgenden in der viewDidLoad Verfahren der ersten View-Controller zu setzen, die verwendet wird:

self.view.window?.styleMask.insert(NSWindowStyleMask.unifiedTitleAndToolbar) 
self.view.window?.styleMask.insert(NSWindowStyleMask.fullSizeContentView) 
self.view.window?.styleMask.insert(NSWindowStyleMask.titled) 
self.view.window?.toolbar?.isVisible = false 
self.view.window?.titleVisibility = .hidden 
self.view.window?.titlebarAppearsTransparent = true 

aber was ich am Ende mit, ist dies:

enter image description here

Es sieht so aus, als hätte die Titelleiste eine geringere Deckkraft als normal, aber ich würde es (und den App-Titel) komplett weglassen wollen.

Fehle ich etwas oder ist das unmöglich?

Danke.

+0

https://github.com/lukakerr/NSWindowStyles –

Antwort

4

Das Problem ist, dass innerhalb der ViewDidLoad -Methode die Fenstereigenschaft immer Null ist. Die gesamte optionale Verkettung in Ihrem Code schlägt nur im Hintergrund fehl. Sie müssen nur Ihren Code in ViewWillAppear-Methode verschieben.

override func viewWillAppear() { 
    super.viewWillAppear() 

    // configure your window properties here 
} 
Verwandte Themen