2011-08-27 8 views
3

私は、マウスカーソルの下にあるデスクトップ上にレンダリングされているものの上にある何らかの種類の描画可能なサーフェスを作成したいと思います。私はマウスの後ろに "トレイル"を作成しようとしています。OS Xデスクトップでフルスクリーンオーバーレイを作成するにはどうすればよいですか?

私はこれをCocoaとObjective-Cでどうやって行うことができますか?

答えて

2

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; 
} 
+0

これは他のすべてのウィンドウの「常に上に」表示されているわけではなく、透明でもありません。何故ですか? – blake8086

+0

どのようにしてウィンドウを作成しましたか? –

+1

私はAppDelegateから推薦するサブクラスを作成し、それをインスタンス化しようとしました。限り、私が言うことができる、over-raiddenコンストラクタは決して呼ばれていない。 AppDelegateで直接ウィンドウを作成し、そのプロパティを設定しました。それはうまくいった。 – blake8086

関連する問題