国产探花免费观看_亚洲丰满少妇自慰呻吟_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);}

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双城市| 米脂县| 边坝县| 松江区| 全州县| 山丹县| 子长县| 瑞金市| 晋城| 许昌县| 揭西县| 云南省| 黔江区| 呈贡县| 高安市| 虎林市| 玉门市| 凤庆县| 于都县| 陆川县| 怀来县| 武冈市| 清涧县| 岚皋县| 天峻县| 清水河县| 南部县| 西畴县| 新兴县| 乌拉特中旗| 孟连| 稷山县| 宜城市| 婺源县| 巴楚县| 涞水县| 黄梅县| 黎平县| 宣恩县| 棋牌| 德清县|