ios开发iOS开发iOS开发常用知识点

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

2019-01-09  本文已影响117人  chasitu

今天遇到一个问题,我们使用的网页视图<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了

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

上一篇下一篇

猜你喜欢

热点阅读