美文网首页ios开发iOS开发iOS开发常用知识点
iOS开发之隐藏wkwebview调起的键盘toolbar

iOS开发之隐藏wkwebview调起的键盘toolbar

作者: chasitu | 来源:发表于2019-01-09 18:04 被阅读117次

    今天遇到一个问题,我们使用的网页视图<wkwebview>页面里面有输入框,需要调用我们键盘,但是键盘上面就有一个工具条,有上下箭头和完成按钮,因为网页上面嵌套的东西比较多,所以工具条的上下按钮点击之后会让我的网页内部内容偏移,很无奈,

    解决:隐藏工具条(因为我使用了IQKeyboardManager所以隐藏就可以了,不担心收起键盘问题)
    第一步:监听键盘弹起
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willshowKeyBoardClick) name:UIKeyboardWillShowNotification object:nil];
    
    第二步:隐藏工具条
    //键盘弹起监听
    - (void)willshowKeyBoardClick
    {
        NSArray *arr = [UIApplication sharedApplication].windows;
        for (NSInteger i = 0; i < arr.count; i++) {
            if ([arr[i] isKindOfClass:[NSClassFromString(@"UITextEffectsWindow") class]]) {
                if (![arr[i] isKindOfClass:[NSClassFromString(@"UIRemoteKeyboardWindow") class]]) {
                    UIWindow *window = arr[i];
                    UIView *view = [window.rootViewController.view.subviews lastObject];
                    if (view.subviews.count > 1) {
                        for (NSInteger j = 0;j < view.subviews.count; j++) {
                            if ([view.subviews[j] isKindOfClass:NSClassFromString(@"UIKBInputBackdropView")] ||
                                [view.subviews[j] isKindOfClass:NSClassFromString(@"UIWebFormAccessory")]) {
                                UIView *subView = view.subviews[j];
                                subView.alpha = 0.0;
                            }
                        }
                        break;
                    }
                }
            }
        }
    }
    
    第三步:移除监听
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    

    原理就是把内部的工具条的控件的透明度设置成0了

    如果小伙伴们有其它更好的方法可以留言给我
    完美,收工

    相关文章

      网友评论

        本文标题:iOS开发之隐藏wkwebview调起的键盘toolbar

        本文链接:https://www.haomeiwen.com/subject/hnigrqtx.html