我有UIWebView
。我正在尝试实施ios11
拖放功能。当我从Safari拖动项目并将其放入我的UIWebView
时,我想知道将调用哪个委托方法。有什么建议吗?
答案 0 :(得分:3)
UIWebview的大部分功能都是在一个名为UIWebBrowserView的未记录的类中实现的。正是这种观点有其相互作用的关系。属性集和这些交互的委托设置为相同的UIWebBrowserView。
根据您的需要,有3个选项可以检测掉落:
1)您可以在Web视图的内容中使用javascript来检测丢弃。这看起来像是:
document.addEventListener('drop', function() {
// Drop detected
} ) ;
2)您可以在UIWebBrowserView中禁用拖放交互。这将允许它们传播到其中一个包含视图中,您可以在那里添加自己的交互。那看起来像是:
webView.scrollView.subviews[0].interactions = @[] ;
完成后,您可以创建自己的互动并将其添加到容器视图中:
UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
[webView addInteraction:dropInteration] ;
webView.userInteractionEnabled = YES ;
然后,您将在' myController'
中实现UIDropInteractionDelegate功能3)你可以调用UIWebBrowserView并用你自己的方法替换UIDropInteractionDelegate方法。
答案 1 :(得分:2)