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

2017-03-11  本文已影响317人  管你爱不爱
#import 

@interface UIWebView (AccessoryHiding)

@property (nonatomic, assign) BOOL hackishlyHidesInputAccessoryView;

@end
//

//  UIWebView+AccessoryHiding.m

//  aaaaa

//

//  Created by GuiHua on 16/5/11.

//  Copyright © 2016年 GuiHua. All rights reserved.

//

#import "UIWebView+AccessoryHiding.h"

#import

#import

@implementation UIWebView (HackishAccessoryHiding)

static const char * const hackishFixClassName = "UIWebBrowserViewMinusAccessoryView";

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:@"UIWebBrowserView"]) {

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("UIWebBrowserView");

object_setClass(browserView, normalClass);

}

[browserView reloadInputViews];

}

@end
上一篇下一篇

猜你喜欢

热点阅读