OS Xユーザーが自分のアプリケーションだけでなくOS Xのファイルをドラッグしているときに通知を受けようとしています。私は私のデスクトップまたはFinderからファイルをドラッグを開始するとき、ハンドラが呼び出されているが、それはとも呼ばれている、 -Cocoaでのグローバルファイルドラッグイベントの登録
は[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^(NSEvent* event) {
NSPasteboard* pb = [NSPasteboard pasteboardWithName:NSDragPboard];
NSLog(@"%@", [pb propertyListForType:NSFilenamesPboardType]);
}];
これは部分的に動作します:次のように
私の現在のアプローチは、NSEvent
にaddGlobalMonitorForEventsMatchingMask:handler:
を使用していました私が左マウスドラッグを含む他のすべての操作を実行すると、例えば窓を動かす。問題は、NSDragPboard
に最新のドラッグされたファイルURLが含まれているように見えることです。ファイルを解放してウィンドウを移動させると、これらの操作を区別することが難しくなります。
TL; DR - 私はシステム全体のファイルドラッグ操作に興味があります。ドラッグされたファイル自体に関する情報は必要ありません。ファイルのドラッグ操作が開始または停止されたという情報だけです。私はこの質問のための可能な解決策へのヒントを感謝します。アップルDTSに話を聞いた後