子ウィンドウは何が必要ですを使用することができるようになるNSWindowController
を使用することによって、それを行うことが可能であるならば、私は疑問に思います。
の方法を使用してとを使用して透明に定義します。次に、新たに作成したウィンドウを、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];
私はウィンドウを表示するために管理し、それは私のビデオストリームの上にもある作業コードと
更新。まだ動作していないと思うのは、ウィンドウがサイズ変更されたときに、ウィンドウがウィンドウと共に伸びるということだけです。 – Besi
これを実現するには、NSWindowDidResizeNotificationのオブザーバーとして、ウィンドウコントローラー(またはアプリケーションアーキテクチャーに応じて別のオブジェクト)を登録します。通知セレクタは、(オーバーレイウィンドウを作成するときと同様に)親フレームのベースにある子ウィンドウのフレームを変更するメソッドを指定する必要があります。必要に応じて、NSWindowDelegateの - windowDidResize:メソッドを使用することもできます。 – dzolanta