OSX HUD面板全透明

OSX HUD Panel Fully transparent

我有一个带有基本 HUD window 的 mac 应用程序。我想让 window 完全透明,并在内容顶部放置 NSViews。如果我更改面板的 alphas,则内容将是透明的,我不希望这样。使背景不可见的最简单方法是什么。谢谢。

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

要配置具有完全透明背景的 NSWindow,您必须将 NSColor.clearColor() 设置为背景色并另外将 opaque 标志设置为 false。 (否则你会遇到绘图故障)。

以下代码呈现 window,它可以承载可见控件,但在其他方面是不可见的:

@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
    }
}