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

Swift中如何移除UITextView的最后一行文本?

在Swift中移除UITextView的最后一行方法

嘿,我刚好碰到过类似的需求!Swift本身并没有专门给UITextView提供移除最后一行的现成API,不过我们可以自己实现这个功能,其实挺简单的~

实现思路

核心逻辑就是把UITextView的内容按换行符拆分成行数组,过滤掉空行后移除最后一个有效元素,再重新拼接成带换行的文本即可。这里要特意处理空行的情况——比如用户输入后按了回车,导致最后一行是空的,这时候我们要跳过这些空行,真正移除最后一行有实际内容的文本。

具体实现代码

我建议给UITextView写个扩展,这样整个项目里的UITextView都能直接调用这个方法,复用性拉满:

extension UITextView {
    func removeLastLine() {
        // 把文本按换行符拆分为行数组
        var lines = text.components(separatedBy: .newlines)
        // 过滤掉空行,避免处理无内容的空行
        lines = lines.filter { !$0.isEmpty }
        
        if !lines.isEmpty {
            // 移除最后一行
            lines.removeLast()
            // 重新拼接成带换行的文本
            text = lines.joined(separator: "\n")
        } else {
            // 如果已经没有内容了,直接清空文本
            text = ""
        }
    }
}

结合你的场景使用

在你的“清除”按钮点击事件里,直接调用这个方法就行:

@IBAction func clearLastLineButtonTapped(_ sender: UIButton) {
    // 替换成你自己的UITextView实例名
    yourTextView.removeLastLine()
}

额外小提示

  • 这个方法会自动处理末尾有多个换行符的情况,过滤空行后只会移除最后一行有实际内容的文本;
  • 如果你的UITextView设置了不可编辑,这个方法也完全适用,不会有任何问题。

内容的提问来源于stack exchange,提问作者halil.cifttur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:51:57