0

OK、これが私が必要とするものです(ただし、私の質問に対する本当の答えはまだ見つかりませんでした):

  • 私はプレーンでシンプルですWebView
  • その上にアイテムをドロップできるようにする必要がありますWebView

WebUIDelegateとそのメソッドを試してみましregisterForDraggedTypesたが、それでも成功しませんでした。

何か案は?これを達成する方法の完全な例はどこにありますか?

4

1 に答える 1

1

私は自分のアプリケーションでそれを行いました。以下は重要なポイントです。まだ探している場合は、

WebView へのドロップを受け入れさせます

[self registerForDraggedTypes:
 [NSArray arrayWithObjects:MyPrivateTableViewDataType,NSFilenamesPboardType,nil]];

ドラッグされているアイテムを検証/検証するために入力されたドラッグを処理します。

- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender{
    pboard = [sender draggingPasteboard];

    if ( [[pboard types] containsObject:MyPrivateTableViewDataType] ) {
        if (sourceDragMask & NSDragOperationGeneric) {
            return NSDragOperationGeneric;
        }
    }

}
- (BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender{
    NSPasteboard *pboard;

    pboard = [sender draggingPasteboard];

    if ( [[pboard types] containsObject:MyPrivateTableViewDataType] ) {
        // Only a copy operation allowed so just copy the data
        return YES;
    }
    else if ( [[pboard types] containsObject:NSURLPboardType] ) {
        return YES;

    }
    return NO;
}

最後にドラッグドロップを実行/完了します

- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender{

    NSPasteboard *pboard;

    pboard = [sender draggingPasteboard];

    if ( [[pboard types] containsObject:MyPrivateTableViewDataType] ) {
        // Only a copy operation allowed so just copy the data
            return YES;
        }
        else{
            return NO;
        }

    } else if ( [[pboard types] containsObject:NSURLPboardType] ) {
        NSURL *url = [NSURL URLFromPasteboard: pboard];
        NSString *filePath= [url path];
        return YES;
    }

    return NO;
}
于 2014-04-09T13:50:05.547 に答える