溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS中怎么去除Webview鍵盤頂部工具欄

發(fā)布時間:2021-06-17 14:29:12 來源:億速云 閱讀:359 作者:Leah 欄目:移動開發(fā)

這篇文章將為大家詳細講解有關(guān)iOS中怎么去除Webview鍵盤頂部工具欄,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

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);
}

關(guān)于iOS中怎么去除Webview鍵盤頂部工具欄就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI