将透明的NSWindow永久地放在另一个NSWindow之上

时间:2012-02-03 11:43:06

标签: objective-c macos cocoa nswindow

我希望在NSWebView之上设置一些UI控件,因为这个问题“https://stackoverflow.com/questions/9120868/video-in-nswebview-hides-views-on-top-of-the-nswebview”我现在想添加一个“透明”NSWindow,所以没有关闭按钮等,位于NSWebView之上,因此,在我当前的NSWindow之上。

即使我移动底层窗口,我怎样才能实现这一点并确保这个“叠加窗口”保持不变?

编辑::虽然@ dzolanta的方法运行正常但我想知道是否可以通过使用NSWindowController来实现它,这将允许我正确使用Outlets等。

2 个答案:

答案 0 :(得分:22)

子窗口是您所需要的。

使用NSWindow创建NSBorderlessWindowMask,并使用- setOpaque:- setBackgroundColor:方法将其定义为透明。然后将新创建的窗口添加为包含NSWebView实例的窗口的子窗口(使用NSWindow的{​​{1}}方法)。移动父窗口将自动导致子窗口移动。

使用工作代码进行更新

- addChildWindow:ordered:

答案 1 :(得分:0)

使用窗口控制器的Swift 3版本:

@media (min-width: 860px) and (-webkit-min-device-pixel-ratio: 0) {
    table.content tbody tr td { min-width: 90px; }
}

@media (min-width: 711px) and (max-width: 860px) and (-webkit-min-device-pixel-ratio: 0) {
    table.content tbody tr td { min-width: 60px; }
}