2

我需要将图像从浏览器拖到 mac 应用程序。从 img 标签拖动图像时,它可以正常工作,但是当 img 之间有链接时,它就不起作用了。NSPasteboard 从链接接收 NSURL,而不是从 img 源。拖动反馈显示图像,所以我认为它正在发送图像数据。我从 NSPasteboard 检查了 propertyListForType,它只包含链接 href。

- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
    if ([sender draggingSource] == nil){
        NSPasteboard *pboard = [sender draggingPasteboard]; 
        if ([[pboard types] containsObject:NSURLPboardType]){
            NSURL* file = [NSURL URLFromPasteboard: [sender draggingPasteboard]];
            //if <img> tag, file is src. If <a><img></a>, it’s link href

            //DOWNLOAD image here
        }
    }
}    
4

1 回答 1

0

NSPasteboard 上应该提供多种类型。每当我编写任何粘贴板接收代码时,我做的第一件事就是编写一些调试代码,这些代码会转储我在视图中发生拖动时获得的所有可用类型及其值。然后我只是挑选我想要的。

作为开始,只是

NSLog(@“types %@“, pboard.types);

我将把它作为一个练习来转储值。:)

于 2014-02-07T02:52:10.343 回答