cocoa – 从finder拖放到WebView

cocoa – 从finder拖放到WebView,第1张

概述我在编辑模式下使用WebView.我已经从WebUIDelegate Procotol实现了这个方法: - (void)webView:(WebView *)sender willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:(id < NSDraggingInfo >)draggingI 我在编辑模式下使用WebVIEw.我已经从WebUIDelegate Procotol实现了这个方法:

- (voID)webVIEw:(WebVIEw *)sender willPerformDragDestinationAction:(WebDragDestinationAction)action forDraggingInfo:(ID < NSDraggingInfo >)draggingInfo

并使用它来捕获我的WebVIEw上的元素滴.当我检测到从我的应用程序外部拖动文件并包含图片时,我在此方法中构建了img DOM元素并将其添加到我的文档中.

这工作正常,但正如方法的名称所暗示的那样,我只被告知拖动会发生,我无法控制它.

由于Finder始终执行文件拖动 *** 作,因此在编辑模式下在WebVIEw上删除文件时通常会发生的事情是webvIEw显示文件的路径.

我最终将文件路径字符串添加到我的webvIEw和图像中,但我想阻止添加文本.

有没有办法在没有子类化webvIEw的情况下配置它?

我尝试了它,当它工作时,它打破了许多其他的东西,如插入移动的插入等.

解决方法 自己回答这个改变!

- (BOol)performDragOperation:(ID <NSDraggingInfo>)sender{    if ([sender draggingSource] == nil)    {        NSPasteboard *pboard = [sender draggingPasteboard];        if ( [[pboard types] containsObject:NSfilenamesPboardType] ) {            NSURL* fileURL;            fileURL=[NSURL URLFromPasteboard: [sender draggingPasteboard]];            NSArray *dragTypes = [NSArray arrayWithObject:NSfileContentsPboardType];            [[sender draggingPasteboard] declareTypes:dragTypes owner:nil];            NSImage *content = [[NSImage alloc] initWithContentsOfURL:fileURL];            [[sender draggingPasteboard] setData:[content TIFFRepresentation] forType:NSPasteboardTypeTIFF];        }    }    return [super performDragOperation:sender];}

实际上,我所做的确实是继承WebVIEw并拦截performDragOperation以更改拖动粘贴板的内容,如果拖动源位于我的应用程序之外并且不包含图像但只包含文件名.

总结

以上是内存溢出为你收集整理的cocoa – 从finder拖放到WebView全部内容,希望文章能够帮你解决cocoa – 从finder拖放到WebView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1015336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存