Детское окно - это то, что вам нужно.
Создайте 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];