UIWebView的子类化受Apple限制。但我需要将方法canPerformAction
替换为以下方法:
-(BOOL) canPerformAction:(SEL)action withSender:(id)sender {
if ((action == @selector(Copy:)) || (action == @selector(Paste:))) {
return YES;
} else {
return NO;
}
}
如何在没有子类化的情况下替换此方法?非常感谢你的帮助!
答案 0 :(得分:0)
要替换类中的函数,可以使用方法调配。有一个很好的库可以为你完成所有事情,称为JRSwizzle。
[[UIWebView class] jr_swizzleMethod:@selector(canPerformAction:withSender:) withMethod:@selector(myCanPerformAction:withSender:) error:nil];
您需要做的就是在UIWebView上创建一个实现myCanPerformAction:withSender:
-(BOOL) myCanPerformAction:(SEL)action withSender:(id)sender {
if ((action == @selector(Copy:)) || (action == @selector(Paste:))) {
return YES;
} else {
return NO;
}
}
不确定这是不是很好的做法......