2012-04-18 10 views
5

Implementé un simple arrastrar y soltar. El objetivo principal es que los usuarios arrastren y suelten imágenes desde un navegador. ¿Es posible para mí obtener la URL desde la que se arrastró esta imagen?Arrastrar y soltar: ¿es posible obtener la URL?

Digamos que estoy en SO y arrastro y coloco el logotipo. ¿Hay alguna manera de saber que esto fue de http://stackoverflow.com? Gracias

+0

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)? –

+0

Gracias por la entrada. ¿Es al menos posible saber de qué aplicación proviene el arrastre? – 0xSina

+0

No, no lo es. Eso no se pasa como parte de la información de arrastre. –

Respuesta

5

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.

+0

Gracias, pero eso no es lo que estaba buscando – 0xSina

+0

¿Qué estaba buscando? – mrwalker

+0

No deseo la URL de la imagen. Quiero la URL de la página web fue arrastrado desde. – 0xSina