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

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

概述我正在为一个应用程序制作一个html编辑器组件(在iOS 5.0中使用contentEditable的UIWebView),并且陷入如何处理UIWebView第一响应者状态 [webView isFirstResponder],[webView becomeFirstResponder]和[webView resignFirstResponder]似乎不起作用,我不知道如何使webView成为或者 我正在为一个应用程序制作一个HTML编辑器组件(在iOS 5.0中使用contentEditable的UIWebVIEw),并且陷入如何处理UIWebVIEw第一响应者状态

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

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

解决方法 这是我如何在UIWebVIEw子类中覆盖这些方法(content是可编辑元素的ID): @H_404_10@-(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是否是第一个响应者的方法如下:

@H_404_10@+(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.

总结

以上是内存溢出为你收集整理的UIWebView与contentEditable(html编辑),第一响应者处理?全部内容,希望文章能够帮你解决UIWebView与contentEditable(html编辑),第一响应者处理?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1142781.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存