长按链接时UIWebView自定义UIActionSheet菜单

时间:2015-04-15 04:03:48

标签: ios ios8 uiwebview uiactionsheet

我长按UIWebView上的链接时实现自定义菜单。

为了防止iOS默认菜单,我使用:

-webkit-touch-callout:'none'

在iOS 6,7中一切正常:我的自定义菜单显示而不是UIWebView默认。但是在iOS 8中,会发生一种奇怪的行为。

在iOS 8中,在显示我自己的菜单后,我释放触摸,并在UIWebView中加载链接。

我将UIWindow子类化,覆盖sendEvent:并查看不同的内容:

  • 在iOS 6,7中:显示我自己的菜单后,发送了一个touchcancel。

  • 在iOS 8中:没有任何反应。但是当我释放触摸时,一个触须就是 发送并触发链接点击。

当我的菜单开始显示时,我尝试从javascript触发touchcancel,但没有运气。

这种情况有解决办法吗?

1 个答案:

答案 0 :(得分:1)

对于那些可能在将来担心的人,我设法通过一个棘手的黑客来克服这种情况:

CGPoint currentOffset = webview.scrollView.contentOffset;
[webview.scrollView setContentOffset:CGPointMake(currentOffset.x, currentOffset.y +1) animated:NO];
[webview.scrollView setContentOffset:currentOffset animated:NO];