在网络视图中,我怎么知道什么时候输入应该被signsignFirstResponder

时间:2018-06-28 19:38:45

标签: ios objective-c uiwebview wkwebview resignfirstresponder

我的应用程序的某些部分通过网络视图向用户显示表单。我有几个用户问为什么在继续向下滚动窗体/ Web视图时将数据输入到字段中后,键盘仍然在屏幕上可见。我似乎找不到任何可以关闭键盘的textarea或textfield委托方法。

我很想开始添加手势识别器,因为我不想覆盖Web视图上的触摸。

1 个答案:

答案 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);