5

シンプルなドラッグ アンド ドロップを実装しました。主な目的は、ユーザーがブラウザから画像をドラッグ アンド ドロップすることです。この画像のドラッグ元の URL を取得することはできますか?

たとえば、私は SO を使用していて、ロゴをドラッグ アンド ドロップします。これがhttp://stackoverflow.comからのものであることを知る方法はありますか? ありがとう

4

1 に答える 1

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 キーを使用して、(Finder の [Get Info] パネルに表示されるように) ファイルから "where from" URL を取得することもできます。

于 2012-05-11T07:59:50.670 に答える