内容简介:在默认情况下,iOS 使用 Webview 打开的网页,在进行表单输入时,弹出的键盘顶部会多出一个工具栏。左边有两个上下按钮,右边有一个为了让 App 中嵌入的 H5 更接近 Native,咱们可以去掉它。
在默认情况下,iOS 使用 Webview 打开的网页,在进行表单输入时,弹出的键盘顶部会多出一个 工具 栏。
左边有两个上下按钮,右边有一个 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); } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Vivaldi 2.4 发布,支持多用户模式和工具栏自定义
- javascript – jqGrid:如何隐藏搜索工具栏中的特定搜索字段
- 利用柯里化去除重复代码
- iOS去除Xcode代码警告
- 如何去除讨厌的Chrome自动填充黄色背景
- 编译原理学习一,去除代码中的注释
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Book of CSS3
Peter Gasston / No Starch Press / 2011-5-13 / USD 34.95
CSS3 is the technology behind most of the eye-catching visuals on the Web today, but the official documentation can be dry and hard to follow. Luckily, The Book of CSS3 distills the heady technical la......一起来看看 《The Book of CSS3》 这本书的介绍吧!