Para las imágenes que no son también enlaces, el siguiente código registrará la URL de la que procede una imagen arrastrada. Esto funciona para mí en Safari & Firefox.
@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
Si la imagen también es un enlace, la URL registrada es un href de ese enlace. También es posible obtener la URL "desde dónde" desde un archivo (como se ve en el panel Obtener información del buscador) usando la clave kMDItemWhereFroms de los atributos extendidos.
Buena pregunta, pero sospecho que si no ves ninguna URL en el arrastre entrante, no habría forma de consultar el navegador de donde provino esa imagen. Esto es algo que cada fabricante de navegador (Safari, Firefox, Chrome, etc.) debería proporcionar en sus implementaciones de arrastre. ¿Tal vez las solicitudes de mejora de archivos en Radar (para Safari) y Bugzilla (para Firefox)? –
Gracias por la entrada. ¿Es al menos posible saber de qué aplicación proviene el arrastre? – 0xSina
No, no lo es. Eso no se pasa como parte de la información de arrastre. –