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

我正在为一个应用程序制作一个html编辑器组件(在iOS 5.0中使用contentEditable的UIWebView),并且陷入如何处理UIWebView第一响应者状态

[webView isFirstResponder],[webView becomeFirstResponder]和[webView resignFirstResponder]似乎不起作用,我不知道如何使webView成为或者通过代码辞职

如果有人知道如何工作,我将非常感激,谢谢提前!

解决方法

这是我如何在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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Mip是什么意思以及作用有哪些
怎么测试Mip页面运行情况
MIP安装的具体步骤有哪些
HTML添加超链接、锚点的方法及作用详解(附视频)
MIP的规则有哪些
Mip轮播图组件中的重要属性讲解
Mip的内联框架组件是什么
怎么创建初始的MIP配置及模板文件
HTML实现多选框及无法提交多数据的原因分析(附视频)
HTML如何设置复选框、单选框以及默认选项?(图文+视频)
怎么使用MIP组件
Div垂直居中效果怎么实现
HTML如何实现视频在线播放
如何使用Mip代码校验工具
Mip中弹出层组件是什么
如何用HTML实现简单按钮样式
Mip中快速回顶组件怎么用
Div内容居中效果如何实现
Div水平居中效果怎么实现
Mip中列表组件怎么用