国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS去除Webview鍵盤頂部工具欄的方法

2020-07-26 02:19:48
字體:
來源:轉載
供稿:網友

前言

在默認情況下,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);}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 司法| 刚察县| 牙克石市| 建昌县| 高雄县| 天门市| 黔东| 即墨市| 渭源县| 罗城| 彰化县| 西藏| 墨江| 博爱县| 阿拉善左旗| 甘谷县| 青田县| 临城县| 虞城县| 贡山| 漾濞| 永康市| 旬阳县| 垦利县| 浦城县| 且末县| 巴里| 赤壁市| 黄平县| 高淳县| 自治县| 逊克县| 兴安盟| 诏安县| 梨树县| 陕西省| 阳泉市| 永嘉县| 溧水县| 板桥市| 湖南省|