3
私は、マウスカーソルの下にあるデスクトップ上にレンダリングされているものの上にある何らかの種類の描画可能なサーフェスを作成したいと思います。私はマウスの後ろに "トレイル"を作成しようとしています。OS Xデスクトップでフルスクリーンオーバーレイを作成するにはどうすればよいですか?
私はこれをCocoaとObjective-Cでどうやって行うことができますか?
私は、マウスカーソルの下にあるデスクトップ上にレンダリングされているものの上にある何らかの種類の描画可能なサーフェスを作成したいと思います。私はマウスの後ろに "トレイル"を作成しようとしています。OS Xデスクトップでフルスクリーンオーバーレイを作成するにはどうすればよいですか?
私はこれをCocoaとObjective-Cでどうやって行うことができますか?
NSWindow
をサブクラス化して境界線のないウィンドウを作成し、そのウィンドウレベルをNSScreenSaverWindowLevel - 1
のように設定する必要があります。
- (id)initWithContentRect:(NSRect)contentRect
styleMask:(NSUInteger)aStyle
backing:(NSBackingStoreType)bufferingType
defer:(BOOL)flag
{
self=[super initWithContentRect:contentRect
styleMask:NSBorderlessWindowMask
backing:bufferingType
defer:flag];
if(self!=nil)
{
[self setHasShadow:NO];
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
[self setLevel:NSScreenSaverWindowLevel - 1];
}
return self;
}
これは他のすべてのウィンドウの「常に上に」表示されているわけではなく、透明でもありません。何故ですか? – blake8086
どのようにしてウィンドウを作成しましたか? –
私はAppDelegateから推薦するサブクラスを作成し、それをインスタンス化しようとしました。限り、私が言うことができる、over-raiddenコンストラクタは決して呼ばれていない。 AppDelegateで直接ウィンドウを作成し、そのプロパティを設定しました。それはうまくいった。 – blake8086