5

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

所以可以说,我在 SO 上,我拖放徽标。有没有办法让我知道这是来自http://stackoverflow.com?谢谢

4

1 回答 1

5

对于不是链接的图像,以下代码将记录拖动图像的来源 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 的获取信息面板中所示)。

于 2012-05-11T07:59:50.670 回答