2015-11-05 67 views
1

我有一个基础HUD窗口的Mac应用程序。我想让这个窗口完全透明,并且让NSView处于内容的顶端。如果我更改面板的alpha,那么内容将是透明的,我不希望这样。什么是使背景隐形的最简单的方法。谢谢。OSX HUD面板完全透明

编辑1: 我有一个NSWindowController来控制初始窗口,然后它转换到视图控制器。但我认为最初的窗口仍然存在。

回答

1

要配置完全透明背景的NSWindow,必须将NSColor.clearColor()设置为背景颜色,并将opaque标志设置为false。 (否则你会得到绘制毛刺)。

下面的代码呈现一个窗口,可承载可见的控件,但不可见: Transparent NSWindow

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate { 

    @IBOutlet weak var window: NSWindow! 


    func applicationDidFinishLaunching(aNotification: NSNotification) { 
     self.window?.backgroundColor = NSColor.clearColor() 
     self.window?.opaque = false 
     self.window?.titlebarAppearsTransparent = true 
     let existingStyleMask = self.window!.styleMask 
     self.window?.styleMask = existingStyleMask|NSFullSizeContentViewWindowMask 
    } 
} 
+0

我添加的代码到我的NSWindowController,但它并没有改变的背景。感谢您的快速回复! –

+0

你究竟在哪里添加它?可能窗户仍然是零?另一种选择是你的窗口使用一些不符合上述标志的样式掩码。你可以尝试一个非HUD,非面板窗口吗? –

+0

伟大的修复它!不,我可以设置它,以便您可以点击应用程序? –