IOS WKWebView 键盘工具栏消除

消除下图中键盘工具栏

先创建一个类

NoInputAccessoryView.h

#import <Foundation/Foundation.h>

#import <WebKit/WebKit.h>

#import <objc/runtime.h>

@interface NoInputAccessoryView : NSObject

- (void)removeInputAccessoryViewFromWKWebView:(WKWebView *)webView;

@end

NoInputAccessoryView.m

#import "NoInputAccessoryView.h"

@implementation NoInputAccessoryView

- (id)inputAccessoryView {

return nil;

}

- (void)removeInputAccessoryViewFromWKWebView:(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([C3NoInputAccessoryView class], @selector(inputAccessoryView));

class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method));

objc_registerClassPair(newClass);

}

object_setClass(targetView, newClass);

}

@end


类创建好之后再调用一下removeInputAccessoryViewFromWKWebView方法。传入WKWebView就好了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,842评论 0 9
  • 前言 关于UIWebView的介绍,相信看过上文的小伙伴们,已经大概清楚了吧,如果有问题,欢迎提问。 本文是本系列...
    CoderLF阅读 12,954评论 2 12
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,763评论 0 17
  • 1、加载网页 WKWebView *webView = [[WKWebView alloc] initWithFr...
    LearningCoding阅读 8,341评论 0 2
  • 【原文】 品诗百首(四)-离骚-02 先秦/屈原 乘骐骥以驰骋兮,来吾道夫先路! (接上回) 昔三后之纯粹兮,固众...
    艾森才爵阅读 2,515评论 0 2