【发布时间】: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