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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容