我有一个 UIWebView
。我正在尝试实现 ios11
拖放功能。当我将项目从 Safari 拖放到我的 UIWebView
中时,我想知道将调用哪个委托(delegate)方法。有什么建议吗?
最佳答案
UIWebview 的大部分功能都是在一个名为 UIWebBrowserView 的未记录类中实现的。正是该 View 设置了“交互”属性,并且这些交互的委托(delegate)被设置为相同的 UIWebBrowserView。
根据您的需要,有 3 种检测跌落的选项:
1) 您可以在网页 View 的内容中使用 javascript 来检测掉落。这看起来像:
document.addEventListener('drop', function() {
// Drop detected
} ) ;
2) 您可以在 UIWebBrowserView 中禁用拖放交互。这将允许它们向上传播到包含 View 之一,并且您可以在那里添加自己的交互。这看起来像:
webView.scrollView.subviews[0].interactions = @[] ;
完成后,您可以创建自己的交互并将它们添加到容器 View 中:
UIDropInteraction *dropInteration = [[UIDropInteraction alloc]initWithDelegate:myController] ;
[webView addInteraction:dropInteration] ;
webView.userInteractionEnabled = YES ;
然后您将在“myController”中实现 UIDropInteractionDelegate 功能
3) 您可以调整 UIWebBrowserView 并将 UIDropInteractionDelegate 方法替换为您自己的方法。
关于ios - 如何检测 iOS 11 中的 UIWebview 下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484559/