【问题标题】:Stop UIWebTouchEventsGestureRecognizer from firing停止 UIWebTouchEventsGestureRecognizer 触发
【发布时间】:2015-12-03 16:08:53
【问题描述】:

好的,我有一个 WKWebView,里面有一个大的 textarea,当我点击它时,它会触发这个 UIWebTouchEventsGestureRecognizer 并显示键盘。

这种行为是正确的。问题是,当从任何其他手势滚动或平移时,会触发此 UIWebTouchEventsGestureRecognizer 并显示键盘。

有什么办法可以防止吗?

我正在使用它来获取有问题的手势识别器:

for (UIView* subview in self.subviews) {
    // here comes the tricky part, desabling
    for (UIView* subScrollView in subview.subviews) {
        if ([subScrollView isKindOfClass:NSClassFromString(@"WKContentView")]) {
            for (UIGestureRecognizer* gesture in [subScrollView gestureRecognizers]) {
                if ([gesture isKindOfClass:NSClassFromString(@"UIWebTouchEventsGestureRecognizer")]) {
                    gesture.delegate = self;
                    gesture.delaysTouchesBegan = true;
                    gesture.delaysTouchesEnded = true;
                    [gesture requireGestureRecognizerToFail:scrollGesture];
                }
            }
        }
    }
}

requireGestureRecognizerToFail:不起作用;

-(BOOL)gestureRecognizer:shouldRequireFailureOfGestureRecognizer:

也没有用

唯一有效的是在这个委托方法上返回 false:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    return false;
}

但显然,现在键盘永远不会显示..

继续,我需要 webview 来专注于点击,并忽略平移和其他手势。

有什么建议吗?

【问题讨论】:

    标签: ios objective-c webkit


    【解决方案1】:

    你是这个吗?

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    

    【讨论】:

    • 这并不能解决我的问题。其他手势识别器正在正确触发。问题是,这个 UIWebTouchEventsGestureRecognizer 首先触发并显示键盘。
    • 我希望 UIWebTouchEventsGestureRecognizer 仅在其他手势识别器失败时触发。这就是为什么我尝试使用gestureRecognizer:shouldRequireFailureOfGestureRecognizer
    • 但触摸不是轻敲。它会在用户触摸屏幕时立即触发,而拖动需要更多时间才能触发。我认为您无法以这种方式完成您想要的事情。如果您可以取消绑定触摸事件并绑定一个点击,它会完成这项工作。
    • 我试过了,但没有成功,因为我在移除这个 UIWebTouchEventsGestureRecognizer 时无法让 WKWebView 聚焦。
    • 今晚我会考虑的,我明天回复你
    猜你喜欢
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2021-06-24
    • 2015-02-11
    • 2014-10-27
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多