iOS去除Webview键盘顶部工具栏的方法

iOS去除Webview键盘顶部工具栏的方法,第1张

概述iOS去除Webview键盘顶部工具栏的方法 前言 在默认情况下,iOS 使用 Webview 打开的网页,在进行表单输入时,d出的键盘顶部会多出一个工具栏. 左边有两个上下按钮,右边有一个Done/完成按钮.这是用来切换输入框的,就像 PC 上按Tab键可以切换输入框一样. 为了让 App 中嵌入的 H5 更接近 Native,咱们可以去掉它. UIWebView UIWebView,可以使用[self hideKeyboardShortcutBar:self.webView]去掉工具栏. - (void) hideKeyboardSho

前言

在默认情况下,iOS 使用 WebvIEw 打开的网页,在进行表单输入时,d出的键盘顶部会多出一个工具栏。

左边有两个上下按钮,右边有一个Done/完成按钮。这是用来切换输入框的,就像 PC 上按Tab键可以切换输入框一样。

为了让 App 中嵌入的 H5 更接近 Native,咱们可以去掉它。

UIWebVIEw

UIWebVIEw,可以使用[self hIDeKeyboardShortcutbar:self.webVIEw]去掉工具栏。

- (voID) hIDeKeyboardShortcutbar: (UIVIEw *)vIEw{ for (UIVIEw *sub in vIEw.subvIEws) {  [self hIDeKeyboardShortcutbar:sub];  if ([NsstringFromClass([sub class]) isEqualToString:@"UIWebbrowserVIEw"]) {   Method method = class_getInstanceMethod(sub.class,@selector(inputAccessoryVIEw));   IMP newImp = imp_implementationWithBlock(^(ID _s) {    if ([sub respondsToSelector:@selector(inputAssistantItem)]) {     UITextinputAssistantItem *inputAssistantItem = [sub inputAssistantItem];     inputAssistantItem.leadingbarbuttonGroups = @[];     inputAssistantItem.trailingbarbuttonGroups = @[];    }    return nil;   });   method_setImplementation(method,newImp);  } }}

WkWebVIEw

WkWebVIEw,可以使用[self hIDeWKWebvIEwKeyboardShortcutbar:self.webVIEw]去掉工具栏。

// 步骤一:创建一个 _NoinputAccessoryVIEw@interface _NoinputAccessoryVIEw : NSObject@end@implementation _NoinputAccessoryVIEw- (ID)inputAccessoryVIEw { return nil;}@end// 步骤二:去掉 WkWebvIEwe Done 工具栏- (voID) hIDeWKWebvIEwKeyboardShortcutbar:(WKWebVIEw *)webVIEw { UIVIEw *targetVIEw; for (UIVIEw *vIEw in webVIEw.scrollVIEw.subvIEws) {  if([[vIEw.class description] hasPrefix:@"WKContent"]) {   targetVIEw = vIEw;  } } if (!targetVIEw) {  return; } Nsstring *noinputAccessoryVIEwClassname = [Nsstring stringWithFormat:@"%@_NoinputAccessoryVIEw",targetVIEw.class.superclass]; Class newClass = NSClassFromString(noinputAccessoryVIEwClassname); if(newClass == nil) {  newClass = objc_allocateClasspair(targetVIEw.class,[noinputAccessoryVIEwClassname cStringUsingEnCoding:NSASCIIStringEnCoding],0);  if(!newClass) {   return;  }  Method method = class_getInstanceMethod([_NoinputAccessoryVIEw class],@selector(inputAccessoryVIEw));  class_addMethod(newClass,@selector(inputAccessoryVIEw),method_getImplementation(method),method_getTypeEnCoding(method));  objc_registerClasspair(newClass); } object_setClass(targetVIEw,newClass);}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

总结

以上是内存溢出为你收集整理的iOS去除Webview键盘顶部工具栏的方法全部内容,希望文章能够帮你解决iOS去除Webview键盘顶部工具栏的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存