0

好的,这就是我需要的(尽管我仍然没有找到我的问题的真正答案):

  • 我有一个简单明了的WebView
  • 我需要能够在上面放置物品WebView

我已经尝试通过 theWebUIDelegate及其方法,甚至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 回答