拖放 - 是否可以获取URL?

问题描述:

我实现了一个简单的拖放操作。主要目的是让用户从浏览器拖放图像。是否有可能获得该图像被拖动的URL?拖放 - 是否可以获取URL?

因此,让我们说,我在SO上,然后拖放徽标。有没有办法让我知道这是从http://stackoverflow.com? 谢谢

+0

不错的问题,但我怀疑如果在传入的拖动中没有看到任何URL,那么将无法查询该图像来自哪里的浏览器。这是每个浏览器制造商(Safari,Firefox,Chrome等)必须在拖放实施中提供的内容。也许文件增强请求到雷达(对于Safari)和Bugzilla(对于Firefox)? – 2012-04-18 05:42:12

+0

感谢您的输入。至少可以知道拖拽来自哪个应用程序? – 0xSina 2012-04-18 05:46:56

+0

不,事实并非如此。这不是作为拖动信息的一部分传递的。 – 2012-04-18 12:46:02

对于不是链接的图像,以下代码将记录拖动图像来自的URL。这适用于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 

如果图片也是链接,则记录的URL是该链接的href。也可以使用扩展属性的kMDItemWhereFroms键从文件中获取“来自”URL(如Finder的“获取信息”面板中所示)。

+0

谢谢,但那不是我想要的 – 0xSina 2012-05-15 11:03:51

+0

你在找什么? – mrwalker 2012-05-15 14:11:16

+0

我不想要图像的URL我想要网页的URL它被拖出来了。 – 0xSina 2012-05-17 01:20:09