Bir OS X kullanıcısı sadece benim uygulamasında değil, OS X'te herhangi bir dosyayı sürüklerken haberdar edilmeye çalışıyorum. Benim masaüstü veya Finder dosya sürüklemenin başladığınızda işleyicisi çağrıldığını ancak o da çağrıldığını, -Genel dosya sürükleme olayları için kayıt olun Cocoa
[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^(NSEvent* event) {
NSPasteboard* pb = [NSPasteboard pasteboardWithName:NSDragPboard];
NSLog(@"%@", [pb propertyListForType:NSFilenamesPboardType]);
}];
Bu kısmen çalışır: aşağıdaki gibi
Bulunduğum yaklaşım NSEvent
tarihinde addGlobalMonitorForEventsMatchingMask:handler:
kullanıyordum sol fare sürükleme içeren diğer tüm işlemleri gerçekleştirdiğimde bir pencere taşınıyor. Sorun, NSDragPboard
'un hala en son sürüklenen dosya URL'sini içermesidir. Dosyayı bıraktığımda ve bir pencereyi hareket ettirmeye başladığımda, bu işlemleri birbirinden ayırt etmek zorlaşıyor.
TL; DR - Sistem genelindeki dosya yükleme işlemleri ile ilgileniyorum. Sürüklenen dosyanın kendisi hakkında bir bilgiye ihtiyacım yok, sadece bir dosya sürükleme işleminin başlatıldığı veya durdurulduğu bilgisi. Bu soru için olası bir çözüm için herhangi bir ipucu takdir ediyorum.