उन छवियों के लिए जो लिंक भी नहीं हैं, निम्न कोड यूआरएल को लॉग इन करेगा जो एक खींची गई छवि से आया था। यह सफारी & फ़ायरफ़ॉक्स में मेरे लिए काम करता है।
@implementation DragView
- (void)awakeFromNib {
[self registerForDraggedTypes:[NSArray arrayWithObject:NSURLPboardType]];
}
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
return NSDragOperationCopy;
}
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender {
NSPasteboard *pboard;
pboard = [sender draggingPasteboard];
NSLog(@"types: %@", [pboard types]);
NSLog(@"url: %@", [NSURL URLFromPasteboard:pboard]);
return YES;
}
@end
यदि छवि भी एक लिंक है, तो लॉग इन यूआरएल उस लिंक का एक href है। विस्तारित विशेषताओं के kMDItemWhereFroms कुंजी का उपयोग करके फ़ाइल से "कहां से" URL (जैसा कि खोजक के गेट इन्फो पैनल में देखा गया है) प्राप्त करना भी संभव है।
अच्छा सवाल है, लेकिन मुझे संदेह है कि यदि आपको आने वाले ड्रैग में कोई यूआरएल दिखाई नहीं देता है, तो ब्राउज़र से पूछताछ करने का कोई तरीका नहीं होगा कि वह छवि कहां से आई थी। यह ऐसा कुछ है जो प्रत्येक ब्राउज़र निर्माता (सफारी, फ़ायरफ़ॉक्स, क्रोम, इत्यादि) को उनके ड्रैग कार्यान्वयन में प्रदान करना होगा। शायद रडार (सफारी के लिए) और बगजिला (फ़ायरफ़ॉक्स के लिए) में फ़ाइल वृद्धि अनुरोध? –
इनपुट के लिए धन्यवाद। क्या यह जानना कम से कम संभव है कि ड्रैग किस ऐप से आया था? – 0xSina
नहीं, यह नहीं है। यह खींचने की जानकारी के हिस्से के रूप में पारित नहीं किया गया है। –