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

iOS开发:点击按钮时如何替换TextView中用户选中的文本?

UITextView选中内容替换实现方案

你已经获取到选中的文本范围range,直接调用UITextView遵守UITextInput协议提供的原生替换方法即可完成需求,完整按钮点击事件代码示例如下:

@IBAction func replaceButtonTapped(_ sender: UIButton) {
    // 校验选中范围是否存在
    guard let selectedRange = textViewText.selectedTextRange else { return }
    // 替换为你需要的目标字符串
    let targetStr = "指定的新字符串"
    // 执行替换操作
    textViewText.replace(selectedRange, withText: targetStr)
    
    // 可选:替换完成后将光标移动到新内容末尾
    if let newCursorPos = textViewText.position(from: selectedRange.start, offset: targetStr.count) {
        textViewText.selectedTextRange = textViewText.textRange(from: newCursorPos, to: newCursorPos)
    }
}

补充说明

  • 没有选中文本时,selectedTextRange会返回当前光标位置,此时调用方法会直接在光标处插入指定字符串,符合常规编辑逻辑。
  • 该方法会自动触发UITextView的文本变更回调,无需手动触发文本更新相关的代理方法。
  • 如果需要替换后选中新插入的内容,只需修改光标设置逻辑,将选中结束位置设置为newCursorPos即可。

内容的提问来源于stack exchange,提问作者alexsmith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:24:06