我长按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,但没有运气。
这种情况有解决办法吗?
答案 0 :(得分:1)
对于那些可能在将来担心的人,我设法通过一个棘手的黑客来克服这种情况:
CGPoint currentOffset = webview.scrollView.contentOffset;
[webview.scrollView setContentOffset:CGPointMake(currentOffset.x, currentOffset.y +1) animated:NO];
[webview.scrollView setContentOffset:currentOffset animated:NO];