消除下圖中鍵盤工具欄
先創(chuàng)建一個類
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
類創(chuàng)建好之后再調(diào)用一下removeInputAccessoryViewFromWKWebView方法。傳入WKWebView就好了盹靴。