2012-04-18 1 views
5

Я реализовал простое перетаскивание. Основная цель - перетащить изображения из браузера. Возможно ли, чтобы я получил URL-адрес, из которого было вытащено это изображение?Перетаскивание - возможно ли получить URL-адрес?

Так что скажем, я нахожусь ТАК, и я перетаскиваю логотип. Есть ли способ узнать, что это было от http://stackoverflow.com? Thanks

+0

Хороший вопрос, но я подозреваю, что если вы не видите URL-адрес входящего перетаскивания, не было бы способа запросить браузер, откуда это изображение. Это то, что каждый производитель браузера (Safari, Firefox, Chrome и т. Д.) Должен был бы предоставить в своих реализациях перетаскивания. Возможно, запросы на улучшение файлов в Radar (для Safari) и Bugzilla (для Firefox)? –

+0

Спасибо за ввод. По крайней мере, можно узнать, из какого приложения получилось перетащить? – 0xSina

+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-адрес является ссылкой на эту ссылку. Также можно получить URL-адрес «откуда» от файла (как показано на панели «Получить информацию» Finder) с помощью ключа kMDItemWhereFroms расширенных атрибутов.

+0

Спасибо, но это не то, что я искал. – 0xSina

+0

Что вы искали? – mrwalker

+0

Я не хочу URL-адрес изображения. Я хочу URL-адрес веб-страницы он был вытащен из. – 0xSina

Смежные вопросы