OK、これが私が必要とするものです(ただし、私の質問に対する本当の答えはまだ見つかりませんでした):
- 私はプレーンでシンプルです
WebView
- その上にアイテムをドロップできるようにする必要があります
WebView
。
WebUIDelegate
とそのメソッドを試してみましregisterForDraggedTypes
たが、それでも成功しませんでした。
何か案は?これを達成する方法の完全な例はどこにありますか?
OK、これが私が必要とするものです(ただし、私の質問に対する本当の答えはまだ見つかりませんでした):
WebView
WebView
。WebUIDelegate
とそのメソッドを試してみましregisterForDraggedTypes
たが、それでも成功しませんでした。
何か案は?これを達成する方法の完全な例はどこにありますか?
私は自分のアプリケーションでそれを行いました。以下は重要なポイントです。まだ探している場合は、
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;
}