【问题标题】:Webview as drag destination?Webview 作为拖动目的地?
【发布时间】:2013-08-21 11:10:08
【问题描述】:

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

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

我已经尝试通过WebUIDelegate 及其方法,甚至registerForDraggedTypes,但仍然没有成功。

有什么想法吗?有没有一个完整的例子来说明如何做到这一点?

【问题讨论】:

    标签: objective-c macos cocoa webview


    【解决方案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;
    }
    

    【讨论】:

    • 我已经解决了,但可能忘记发布我的解决方案答案。非常感谢您为社区做出的贡献! :-)
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2017-10-02
    • 2017-02-21
    • 1970-01-01
    • 2021-07-05
    相关资源
    最近更新 更多