5
我試圖在OS X用戶在OS X中拖動任何文件時發出通知,而不僅僅是在我的應用程序中。在Cocoa註冊全局文件拖動事件
我目前的做法是使用上NSEvent
addGlobalMonitorForEventsMatchingMask:handler:
,如下:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^(NSEvent* event) {
NSPasteboard* pb = [NSPasteboard pasteboardWithName:NSDragPboard];
NSLog(@"%@", [pb propertyListForType:NSFilenamesPboardType]);
}];
此工程部分 - 當我開始拖動從桌面或Finder文件處理程序被調用,但是它也被稱爲當我執行其他包含鼠標左鍵拖動的操作時,例如移動一個窗口。問題在於NSDragPboard
似乎仍包含最新的拖曳文件網址,例如當我放開文件並開始移動窗口時,很難區分這些操作。
TL; DR - 我對系統文件拖動操作感興趣。我不需要關於拖拽文件本身的任何信息,只是文件拖拽操作已經啓動或停止的信息。我將不勝感激任何暗示此問題的可能解決方案。