OSX HUD面板完全透明

时间:2015-11-05 11:56:53

标签: xcode macos cocoa nswindow

我有一个带有基本HUD窗口的mac应用程序。我想让窗口完全透明,并在内容上安装NSViews。如果我更改面板的alpha,那么内容将是透明的,我不想要那样。什么是使背景不可见的最简单方法。谢谢。

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

1 个答案:

答案 0 :(得分: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
    }
}