前言
在默认情况下,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键盘顶部工具栏的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)