拖放 - 是否可以获取URL?

时间:2012-04-18 05:36:25

标签: objective-c macos cocoa drag-and-drop

我实现了一个简单的拖放操作。主要目的是让用户从浏览器中拖放图像。我是否可以获取拖动此图片的网址?

所以,让我们说,我就这样,我拖放徽标。有没有办法让我知道这是来自http://stackoverflow.com? 感谢

1 个答案:

答案 0 :(得分: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键从文件中获取“where from”URL(如Finder的“获取信息”面板中所示)。