【问题标题】:Hide text selection handles after action in UIWebView在 UIWebView 中操作后隐藏文本选择句柄
【发布时间】:2010-08-22 16:48:49
【问题描述】:

我有几个自定义 UIMenuItems,它们通过 UIWebView 中的选择来执行操作。在对该选择运行操作后,我想像copy: 一样隐藏选择句柄。

我尝试过使用window.getSelection().removeAllRanges();,它的工作原理是window.getSelection() 不再返回任何内容,但文本选择句柄保持可见。

有没有办法删除选择和手柄?

编辑:我不需要它是一个 JS 解决方案,但我不能通过重新加载 webview 来失去状态。

【问题讨论】:

  • Matt - 在我的手机(和模拟器)上,复制:选择时不会隐藏选择句柄。它在你的身上吗?如果您找到了解决方案,请发布您的解决方案 - 我也在努力解决这个问题。
  • Tom – 嗯,你是对的......也许这是不可能的事情。我正在做的是获得选择并用新的 div 围绕它。我不喜欢的是蓝色选择句柄然后显示在所选文本的旧位置,例如带有两个蓝点的 I。相关的问题是,如果我以编程方式更改选择,我不相信蓝色文本选择框会调整到该新范围。
  • 这与我经历过的行为相同。似乎无法从 javascript 更改选择范围。

标签: iphone objective-c ios uiwebview


【解决方案1】:

只需禁用并重新启用用户交互:

myWebView.userInteractionEnabled = NO;
myWebView.userInteractionEnabled = YES;

【讨论】:

  • 太棒了!你赚了!当它如此简单时,你知道你有正确的解决方案......:)
  • 谢谢。我喜欢用简单的方法解决明显困难的问题:)
  • @Sylter - 谢谢。如果这个答案在谷歌上更容易找到!
  • 这在 iOS 5 上似乎对我不起作用,还有人可以让它工作吗?
  • 如果包含很大或者我们 userInterfacetionEnable=NO 则无法滚动 Webview
【解决方案2】:

如果您的数据只是文本,您可以简单地刷新 webview,然后没有正文可以跟踪 webview 已刷新

使用此代码

[webview reload];

我在我的应用程序中做了这件事,效果很好

【讨论】:

  • 我无法重新加载整个 webview,因为这会改变 webview 中的状态。我只需要让那些把手消失。 ;)
【解决方案3】:

[_webview becomeFirstResponder];在你的行动之后。

你只需要这个。我一直用这种方式。

【讨论】:

    猜你喜欢
    • 2014-05-17
    • 2019-09-25
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2021-04-20
    • 2012-02-28
    相关资源
    最近更新 更多