uiwebview 修改html,UIWebView与contentEditable(html编辑),第一响应者处理?

这是我如何在UIWebView子类中覆盖这些方法(content是可编辑元素的id):

-(BOOL)resignFirstResponder {

[self setUserInteractionEnabled:NO];[self setUserInteractionEnabled:YES];

return [super resignFirstResponder];

}

// only works on iOS 6+

-(void)becomeFirstResponder {

self.keyboardDisplayRequiresUserAction = NO; // set here or during initialization

[self stringByEvaluatingJavaScriptFromString:@"document.getElementById('content').focus()"];

}

-(BOOL)isFirstResponder{

if ([[self stringByEvaluatingJavaScriptFromString:@"document.activeElement.id=='content'"] isEqualToString:@"true"]) {

return YES;

}

else {

return NO;

}

}

键盘显示后,isFirstResponder将返回true(例如,它将在UIKeyboardWillShowNotification处返回false)

如果这是一个问题,另一种检查UIWebView是否是第一个响应者的方法如下:

+(BOOL)isFirstResponder:(UIView *)v{

for (UIView *vs in v.subviews) {

if ([vs isFirstResponder] || [self isFirstResponder:vs]) {

return YES;

}

}

return NO;

}

-(BOOL)isFirstResponder{

return [[self class] isFirstResponder:self];

}

这样,即使在键盘动画完成(显示或隐藏)之前/之后,返回值也将为YES.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值