Bes*_*esi 8 macos cocoa objective-c nswindow
我想有一个顶部一些UI控件NSWebView,因为这个问题"和/sf/ask/638460791/ "我现在想要添加一个"透明" NSWindow,所以没有关闭按钮等,在我的上面NSWebView,因此,在我的当前NSWindow.
我怎样才能实现这一点,并确保即使我移动底层窗口,这个"叠加窗口"仍然存在?
编辑::虽然@ dzolanta的方法工作正常,我想知道是否可以通过使用一个NSWindowController允许我正确使用奥特莱斯等的方法来做到这一点.
dzo*_*nta 22
子窗口是您所需要的.
创建NSWindow与NSBorderlessWindowMask和定义它使用是透明- setOpaque:和- setBackgroundColor:方法.再加入新创建的窗口作为窗口的含有实例的儿童NSWebView(使用NSWindow的- addChildWindow:ordered:方法).移动父窗口将自动导致子窗口移动.
使用工作代码更新:
CGRect wRect = self.window.frame;
NSView *contentView =self.window.contentView;
CGRect cRect = contentView.frame;
CGRect rect = CGRectMake(wRect.origin.x, wRect.origin.y, cRect.size.width, cRect.size.height);
NSWindow *overlayWindow = [[NSWindow alloc]initWithContentRect:rect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
overlayWindow.backgroundColor = [NSColor redColor];
[overlayWindow setOpaque:NO];
overlayWindow.alphaValue = 0.5f;
[self.window addChildWindow:overlayWindow ordered:NSWindowAbove];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7724 次 |
| 最近记录: |