ステータス バーに NSStatusItem アイコンがある Mac アプリケーションを作成しようとしています。ステータス バー アイコンは、ファイルのドラッグ アンド ドロップをサポートし、クリックするとメニューを表示する必要があります。
問題は、私が両方の機能を別々に達成することができ、それらを一緒にマージするのに苦労していることです.
このリンクを使用して、ステータス バー アプリケーションを作成できました。
http://cocoatutorial.grapewave.com/2010/01/creating-a-status-bar-application/
そして、次のリンクを使用して、ステータスバーアイコンでドラッグアンドドロップ機能を実現できました
私が直面している問題は次のとおりです。ドラッグ アンド ドロップを取得するには、別のビューを作成し、そのビューを以下に示すように 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");
}
この関数は、ステータス バー アイコンがクリックされるたびに呼び出され、ファイルのドラッグ アンド ドロップも検出されます。
しかし、ステータスバーのアイコンをクリックしたときにメニューを表示する方法を考え出すのに苦労しています。
どんな助けでも大歓迎です。私はこれの解決策に取り組んでおり、最初に何かを見つけたらここに投稿します:)
よろしく
シューマイ