2011-01-08 8 views
0

NSStatusItemの側面から何かを表示しようとしています。NSStatus外の座標または描画でウィンドウを描画するアイテム

私はマウスカーソルの座標に必要な画像を透明なウィンドウで表示します。

OR

カスタムNSStatusItemを使用し、それらがステータス項目に問題がある

オフ実際にあるように、(NSRectフレーム負の設定、左にビューに-200をコントロール/画像を移動し、 0,100,50)は実際には機能していないようです。では、ステータス項目の範囲外にあるものをレンダリングする(CSSのオーバーフロープロパティを考える)か、特定の座標に透明なウィンドウをレンダリングするにはどうすればよいですか?

答えて

1

ステータス項目の外に描画することはできませんが、透明なウィンドウを使用すると機能します。

NSRect rect; //The location of the window 
NSWindow *win = [[NSWindow alloc] initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES]; 
[win setOpaque:NO]; 

[win setBackgroundColor:[NSColor clearColor]]; 
//or 
[win setContentView:myView]; 

ここで、myViewは、ウィンドウの背景になるカスタムビューです。ウィンドウを透明にするには、透明にするために背景色を設定するか、透明でないところだけを描画するカスタムコンテンツビューを使用する必要があります。おそらく浮動ウィンドウを使用して、上にとどまるようにしたいと思うでしょう。重要なことを隠さないように注意してください。ウィンドウがその下にあるイベントを傍受する可能性があるからです。

+0

1つのことを除いて、完全に動作するように見えます(浮動ウィンドウにして、makeKeyAndOrderFrontで表示されます)。それは約1秒間表示されます、私がそれを望む方法、それは消えます。ただ消えてしまいます。ログには何も表示されず、アプリはまだ正常に動作しています。何が起こっているかも知りませんか?編集:ウィンドウ内のボタンをクリックすると、数秒間それが残っているようです。それは非アクティブなときに消えるようなものです... –

+0

わかりません。それはおそらく解放されていますか?そうでない場合は、透明にして、まだ消えていないかどうかを確認してください。 – ughoavgfhw

関連する問題