UIWebView事件并保持选择/复制

时间:2009-08-11 06:52:31

标签: iphone uiwebview

我创建了一个UIWebView的子类,并在其上添加了一个UIView,以便捕获触摸事件并使用它们。

现在,由于在UIWebView上添加了额外的视图,文本选择根本不起作用。当我删除额外的UIView时,文本被选中但后来我无法识别事件。

两种功能是否可以共存?

[编辑]

可能是我的帖子不够清楚。当我将UIWebView子类化以处理事件时,选择停止工作。我不能再选择要复制的文本了。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

“UIWebView类不应该是子类。” - 来自Apple's UIWebView docs

听起来你正试图弄乱一个人如何与网页互动,这可能会让你从应用商店中被拒绝。 (有很多可能的拒绝原因,请查看app rejected。)

如果你不担心,这里有一些建议可以帮助你实现目标:

  • 如果您想控制用户可以通过超链接去哪里,或者只是在点击某些链接时执行一些代码,您可以通过{{1}的webView:shouldStartLoadWithRequest:navigationType:方法添加一个钩子}} 协议。非常方便。
  • 如果您想对页面的行为或外观进行一些简单的修改,您实际上可以通过调用UIWebViewDelegate stringByEvaluatingJavaScriptFromString:本身的方法在页面中执行您自己的javascript。只需将您的javascript作为字符串传递。

而且,如果没有给你想要你想要的东西(在这种情况下你真的要勾掉他们的应用程序商店评论家伙),那么你可以做你正在做的事情,并且只是传播所有这些UIWebView一直到UITouch本身。像这样的例子(在重叠的UIWebView中):

UIView

这样你就可以得到你的蛋糕(获取用户触摸信息)并吃掉它(让网页像往常一样)。

答案 1 :(得分:0)

不是您想听到的,但您肯定需要重新考虑您的策略以获得您想要的功能。

UIWebview有很多复杂的行为,它封装了整个Web渲染引擎。

您可以以不同的方式实现目标(可能是工具栏项目),或者您希望的功能可能隐藏在委托方法中。