3

ステータス バーに NSStatusItem アイコンがある Mac アプリケーションを作成しようとしています。ステータス バー アイコンは、ファイルのドラッグ アンド ドロップをサポートし、クリックするとメニューを表示する必要があります。

問題は、私が両方の機能を別々に達成することができ、それらを一緒にマージするのに苦労していることです.

このリンクを使用して、ステータス バー アプリケーションを作成できました。

http://cocoatutorial.grapewave.com/2010/01/creating-a-status-bar-application/

そして、次のリンクを使用して、ステータスバーアイコンでドラッグアンドドロップ機能を実現できました

NSStatusItem でのドラッグ アンド ドロップ

私が直面している問題は次のとおりです。ドラッグ アンド ドロップを取得するには、別のビューを作成し、そのビューを以下に示すように NSStatusItem に割り当てる必要があります。

NSStatusItem *statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];

ViewWithDragFunctionality* viewWithDrag = [[ViewWithDragFunctionality alloc] initWithFrame:NSMakeRect(0, 0, 24, 24)];
[statusItem.view addSubview:viewWithDrag];

これは単なるビューであるため、明らかに NSStatusItem のデフォルト ビューとして動作せず、マウス操作などをサポートしません。次の関数を ViewWithDragFunctionality.m に追加することで、それを回避する方法を見つけることができました

- (void)mouseDown:(NSEvent *)theEvent {
    NSLog(@"Status Bar Icon Clicked");
}

この関数は、ステータス バー アイコンがクリックされるたびに呼び出され、ファイルのドラッグ アンド ドロップも検出されます。

しかし、ステータスバーのアイコンをクリックしたときにメニューを表示する方法を考え出すのに苦労しています。

どんな助けでも大歓迎です。私はこれの解決策に取り組んでおり、最初に何かを見つけたらここに投稿します:)

よろしく

シューマイ

4

1 に答える 1

5

何日にもわたるヒットとトライアルの後、適切なチュートリアルを探し、壁に頭をぶつけても無駄になりましたが、ついにgithubで一般公開されているimgurアプリケーションコードベースに出くわしました。

コードは、ZBUCというユーザーによってgihthubでホストされまし

私を助けてくれたコードは、githubの次のリポジトリの場所にあります:https ://github.com/zbuc/imgurBar

これはまさに必要なことであり、彼/彼らがそこでどのように物事を行ったかを研究し、私が学んだ/見つけたものを質問に記載されたリンクと組み合わせた後、アプリケーションのカスタムステータスメニュー項目を作成することができました。デフォルトのステータスメニュー項目の場合のようにドロップダウンする適切なメニューであり、アプリケーションのステータスメニュー項目にドラッグアンドドロップ機能を追加することもできました。

これで、アプリケーションのカスタムステータスメニューができました。これは通常のステータスメニューのように機能し、ドラッグアンドドロップ機能もサポートしています。

質問のリンクと、上記のリポジトリリンクが、私がしたことを必要とするすべての人に役立つことを願っています。

ありがとうございました

シュマイス

于 2013-02-27T11:53:28.443 に答える