func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
// 固定格式 必须为 "@xxx " @开头,空格结尾
// 一次性删除 @xxx 这种 @ 消息
if text != "" {
return true
}
// 转为OC字符串,因为swift对字符串操作比较麻烦
let ocString = textView.text as NSString?
guard let ocResultString = ocString else { return true }
if ocResultString.length == 0 {
return true
}
// 32是空格的ascii码
let blank = 32
// '@' 对应的ascii码
let at = 64;
// 判断是否是空格
let blankChar = ocResultString.character(at: range.location)
if blankChar != blank {
return true
}
// 如果是空格回溯找到@
var location = range.location
var length = range.length
while location != 0 {
location = location - 1
length = length + 1
// 获取字符
let subChar = ocResultString.character(at: location)
// 如果发现了其他空格,说明是"@xxx xxx"
if subChar == blank {
return true
}
if subChar != at {
continue
}
// 找到了@
let atText = ocResultString.substring(with: NSMakeRange(location, length))
print("@的内容是:\(atText)")
let afterText = ocResultString.replacingCharacters(in: NSMakeRange(location, length), with: "")
textView.text = afterText
return false
}
return true
}
iOS:TextView删除@内容
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- UItextView的代理方法在文本输入的过程中实时监测 [限制字数,可删除] 给uitextView添加监听 监...
- 网上搜索基本的都是说这个目录的内容不会被删除,只是不会被icloud备份而已。之前的同事将数据库放到了Librar...
- 概念: UIMenuController即菜单控制器,是一个单例对象,用来复制,粘贴,删除等内容的操作。 1、实例...
- 现象:输入一串文字,再删除内容,当内容完全删除之后,光标不在初始位置(左上侧),而是前面有个空的占位,这个时候pl...