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了
如果小伙伴们有其它更好的方法可以留言给我
完美,收工