我创建了一个UIWebView的子类,并在其上添加了一个UIView,以便捕获触摸事件并使用它们。
现在,由于在UIWebView上添加了额外的视图,文本选择根本不起作用。当我删除额外的UIView时,文本被选中但后来我无法识别事件。
两种功能是否可以共存?
[编辑]
可能是我的帖子不够清楚。当我将UIWebView子类化以处理事件时,选择停止工作。我不能再选择要复制的文本了。有什么想法吗?
答案 0 :(得分:4)
“UIWebView类不应该是子类。” - 来自Apple's UIWebView
docs。
听起来你正试图弄乱一个人如何与网页互动,这可能会让你从应用商店中被拒绝。 (有很多可能的拒绝原因,请查看app rejected。)
如果你不担心,这里有一些建议可以帮助你实现目标:
webView:shouldStartLoadWithRequest:navigationType:
方法添加一个钩子}} 协议。非常方便。UIWebViewDelegate
stringByEvaluatingJavaScriptFromString:
本身的方法在页面中执行您自己的javascript。只需将您的javascript作为字符串传递。而且,如果没有给你想要你想要的东西(在这种情况下你真的要勾掉他们的应用程序商店评论家伙),那么你可以做你正在做的事情,并且只是传播所有这些UIWebView
一直到UITouch
本身。像这样的例子(在重叠的UIWebView
中):
UIView
这样你就可以得到你的蛋糕(获取用户触摸信息)并吃掉它(让网页像往常一样)。
答案 1 :(得分:0)
不是您想听到的,但您肯定需要重新考虑您的策略以获得您想要的功能。
UIWebview有很多复杂的行为,它封装了整个Web渲染引擎。
您可以以不同的方式实现目标(可能是工具栏项目),或者您希望的功能可能隐藏在委托方法中。