在adddelegate.m中添加以下C的函数:
static
void (*originalIMP)(
id
self, SEL _cmd,
void* arg0,
BOOL arg1,
BOOL arg2,
id arg3) =
NULL;
void interceptIMP (
id
self, SEL _cmd,
void* arg0,
BOOL arg1,
BOOL arg2,
id arg3)
{
originalIMP(
self, _cmd, arg0,
TRUE, arg2, arg3);
}
void setWkWebViewShowKeybord()
{
Class cls =
NSClassFromString(
@"WKContentView");
SEL originalSelector =
NSSelectorFromString(
@"_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:");
Method originalMethod = class_getInstanceMethod(cls, originalSelector); IMP impOvverride = (IMP) interceptIMP;
originalIMP = (
void *)method_getImplementation(originalMethod);
method_setImplementation(originalMethod, impOvverride);
}
然后在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中,调用setWkWebViewShowKeybord() 函数即可