2012-04-18 161 views
5

我實現了一個簡單的拖放操作。主要目的是讓用戶從瀏覽器拖放圖像。是否有可能獲得該圖像被拖動的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

回答

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的「獲取信息」面板中所示)。

+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