ios 让WKWebview弹出键盘上的按钮影藏

#import

@interface WKWebView (AccessoryHiding)

@property (nonatomic, assign) BOOL hackishlyHidesInputAccessoryView;

@end
#import "WKWebView+AccessoryHiding.h"

#import

#import

@implementation WKWebView (HackishAccessoryHiding)

static const char * const hackishFixClassName = "WKContentViewMinusAccessoryView";

static Class hackishFixClass = Nil;

- (UIView *)hackishlyFoundBrowserView {

UIScrollView *scrollView = self.scrollView;

UIView *browserView = nil;

for (UIView *subview in scrollView.subviews) {

NSLog(@"%@",NSStringFromClass([subview class]));

if ([NSStringFromClass([subview class]) hasPrefix:@"WKContentView"]) {

browserView = subview;

break;

}

}

return browserView;

}

- (id)methodReturningNil {

return nil;

}

- (void)ensureHackishSubclassExistsOfBrowserViewClass:(Class)browserViewClass {

if (!hackishFixClass) {

Class newClass = objc_allocateClassPair(browserViewClass, hackishFixClassName, 0);

IMP nilImp = [self methodForSelector:@selector(methodReturningNil)];

class_addMethod(newClass, @selector(inputAccessoryView), nilImp, "@@:");

objc_registerClassPair(newClass);

hackishFixClass = newClass;

}

}

- (BOOL) hackishlyHidesInputAccessoryView {

UIView *browserView = [self hackishlyFoundBrowserView];

return [browserView class] == hackishFixClass;

}

- (void) setHackishlyHidesInputAccessoryView:(BOOL)value {

UIView *browserView = [self hackishlyFoundBrowserView];

if (browserView == nil) {

return;

}

[self ensureHackishSubclassExistsOfBrowserViewClass:[browserView class]];

if (value) {

object_setClass(browserView, hackishFixClass);

}

else {

Class normalClass = objc_getClass("WKContentView");

object_setClass(browserView, normalClass);

}

[browserView reloadInputViews];

}

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

推荐阅读更多精彩内容