- (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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)