我實現了一個簡單的拖放操作。主要目的是讓用戶從瀏覽器拖放圖像。是否有可能獲得該圖像被拖動的URL?拖放 - 是否可以獲取URL?
因此,讓我們說,我在SO上,然後拖放徽標。有沒有辦法讓我知道這是從http://stackoverflow.com? 謝謝
我實現了一個簡單的拖放操作。主要目的是讓用戶從瀏覽器拖放圖像。是否有可能獲得該圖像被拖動的URL?拖放 - 是否可以獲取URL?
因此,讓我們說,我在SO上,然後拖放徽標。有沒有辦法讓我知道這是從http://stackoverflow.com? 謝謝
對於不是鏈接的圖像,以下代碼將記錄拖動圖像來自的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的「獲取信息」面板中所示)。
不錯的問題,但我懷疑如果在傳入的拖動中沒有看到任何URL,那麼將無法查詢該圖像來自哪裏的瀏覽器。這是每個瀏覽器製造商(Safari,Firefox,Chrome等)必須在拖放實施中提供的內容。也許文件增強請求到雷達(對於Safari)和Bugzilla(對於Firefox)? – 2012-04-18 05:42:12
感謝您的輸入。至少可以知道拖拽來自哪個應用程序? – 0xSina 2012-04-18 05:46:56
不,事實並非如此。這不是作爲拖動信息的一部分傳遞的。 – 2012-04-18 12:46:02