我的应用程序的某些部分通过网络视图向用户显示表单。我有几个用户问为什么在继续向下滚动窗体/ Web视图时将数据输入到字段中后,键盘仍然在屏幕上可见。我似乎找不到任何可以关闭键盘的textarea或textfield委托方法。
我很想开始添加手势识别器,因为我不想覆盖Web视图上的触摸。
答案 0 :(得分:0)
本机行为:
键盘会自动聚焦于UITextView上,要再次隐藏它,您需要在UIView [self.view endEditing:YES];
在WKWebView上,键盘也会自动显示焦点,例如显示在HTMLInputElement上,而模糊显示。 但是WKWebView不会通过轻按外部(例如,在主体上)的某个位置来模糊HTMLInputElement的焦点,因此Keyboard仍停留在视图中。
如果要在滚动后隐藏键盘,可以只带一点JS(将其注入WKWebView中):
var SKIP_BLURRING = ['INPUT', 'TEXTAREA'];
document.body.addEventListener('touchend', function (event) {
var activeElement = document.activeElement;
var tapped = event.target;
var shouldSkipElement = SKIP_BLURRING.indexOf(tapped.tagName) > -1;
var isSameElement = activeElement === tapped;
if (shouldSkipElement || isSameElement) {
return;
}
activeElement.blur();
}, false);