最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年06月05日 10:55:35   作者:一棵開花的松樹  
這篇文章主要給大家介紹了關(guān)于iOS去除Webview鍵盤頂部工具欄的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在默認(rèn)情況下,iOS 使用 Webview 打開的網(wǎng)頁,在進行表單輸入時,彈出的鍵盤頂部會多出一個工具欄。

左邊有兩個上下按鈕,右邊有一個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]去掉工具欄。

// 步驟一:創(chuàng)建一個 _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);
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論

威信县| 克拉玛依市| 融水| 五大连池市| 宝山区| 贵州省| 肥东县| 务川| 饶平县| 武夷山市| 石泉县| 伊春市| 株洲县| 西乌| 安宁市| 监利县| 盘山县| 普安县| 呼图壁县| 黄冈市| 临江市| 平乐县| 高淳县| 辉县市| 石河子市| 本溪市| 陆丰市| 当雄县| 天长市| 馆陶县| 团风县| 舟曲县| 青铜峡市| 夏邑县| 驻马店市| 璧山县| 和田县| 蓬溪县| 唐山市| 错那县| 荥阳市|