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
相关产品推荐
相关产品推荐

