透明的NSWindow,但有标准的边框和阴影

时间:2012-03-01 15:33:05

标签: objective-c macos cocoa transparent nswindow

我希望有一个或多或少的标准NSWindow带有工具栏和所有这些,但我希望内容视图是透明的,以便我可以看透它。同时我想保持窗户的浅灰色轮廓和它的阴影。但我想避免从内容视图区域内的工具栏中获得“内部”阴影。

到目前为止,我所尝试的只是将窗口背景颜色设置为半透明颜色,并将opaque设置为NO。问题是窗口边框会以背景本身的alpha消失,并且我在背景上的透明度越高,工具栏的阴影就越多地显示在内容视图中。

通常,窗口阴影和边框会根据内容视图的透明度而变化,我完全理解。但我想要一种行为,它保持边框和阴影,就像它是一个完全不透明的窗口,然后我希望内容视图区域是透明的。

我不确定我需要在概念上做些什么来使其发挥作用。也许我必须自己绘制窗口边框,也许不是。也许我需要自己绘制阴影,或者也许不是。

有没有人知道如何建立这个?我不需要确切的代码细节,而是需要自定义的部分..

我感谢任何意见!

2 个答案:

答案 0 :(得分:3)

在这段时间之后,我不知道这对你有什么价值,但是试试看:

[aWindow setOpaque:NO];
[aWindow setBackgroundColor:[NSColor clearColor]];

答案 1 :(得分:0)

对NSView类进行子类化,覆盖drawRect:(NSRect)dirtyRect方法并将视图的颜色设置为clearcolor,现在将内容视图的类设置为NSView的子类。