You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清除UITextView链接点击后的灰色选中框?

解决UITextView点击链接时清除灰色选中框的问题

我刚好也踩过这个坑,不用私有API完全能搞定!你找的方向完全没错——靠textView:shouldInteractWithURL:inRange:代理方法就能解决,补全代码就行:

完整实现代码

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
    // 核心操作:清空文本选中范围,直接移除灰色高亮框
    textView.selectedRange = NSRange(location: 0, length: 0)
    
    // 要是你想自定义链接跳转逻辑(比如在App内打开而非跳Safari),可以加这段:
    // if UIApplication.shared.canOpenURL(URL) {
    //     UIApplication.shared.open(URL)
    //     return false // 返回false阻止系统默认处理
    // }
    
    // 返回true让系统按默认逻辑处理链接跳转
    return true
}

原理说明

用户点击链接时,系统会自动选中对应的链接文本,这就是灰色选中框的来源。我们在代理方法里立刻把选中范围设为空,就能在链接交互触发前清除高亮状态,完全不影响链接的正常跳转。

注意事项

  • 一定要给UITextView设置delegate(可以在Storyboard里关联,或者代码里写textView.delegate = self),不然代理方法根本不会触发
  • 如果自定义了链接处理逻辑,记得把return true改成return false,防止系统重复处理跳转

内容的提问来源于stack exchange,提问作者R.Wonder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:25:19