2016-06-26 13 views
1

In meiner Anwendung versuche ich es so zu machen, dass mein AVPlayerView die Titelleiste verbirgt, wenn sich die Maus im Leerlauf befindet.Titelleiste ausblenden, wenn die Maus inaktiv ist - Swift (Cocoa OS X)

Screenshot: http://i.stack.imgur.com/rMcrv.png

Grundsätzlich mag ich die die gleiche Wirkung des Video-Steuerelemente hat, in dem sie verschwindet automatisch, wenn keine Mausaktivität.

Screenshot: http://i.stack.imgur.com/TtTtb.png

Hier ist, was ich jetzt haben:

override func viewDidAppear() { 
    super.viewDidAppear() 
    self.view.window?.titleVisibility = NSWindowTitleVisibility.Hidden; 
    self.view.window?.titlebarAppearsTransparent = false 
    self.view.window?.styleMask = NSTitledWindowMask | NSFullSizeContentViewWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask 
} 

Irgendwelche Tipps? Vielen Dank!

Antwort

3

Ich würde wahrscheinlich eine NSTimer setzen, die bestimmen würde, wie lange vor der Titelleiste verschwindet. Dies würde jedesmal ungültig gemacht und zurückgesetzt werden, wenn mouseMoved: aufgerufen wird. Sobald es aufgerufen wird, dann ist der einzige Weg, ich weiß, einen NSWindow titlebar verblasst zu machen, ist die Titelleiste Ansicht durch Schleifen oder mit dem Super der Taste bekommen (natürlich könnte es immer später ändern):

[[[[self.window standardWindowButton:NSWindowCloseButton] superview] animator] setAlphaValue:0];

Die Titelleisten-Tasten funktionieren immer noch, Sie müssen sie also in einer NSAnimationContext und setHidden: gruppieren, wenn die Animation abgeschlossen ist.

+0

Keine schlechte Idee, ich werde es versuchen! Vielen Dank – user3063455