如何解决iOS复制从Pasteboard粘贴文本一段时间可以正常工作,一段时间后在textview中消失
我已经实现了从UI粘贴板复制粘贴,然后显示前300个字符。我从复制粘贴中禁用了表情符号,问题仅在第一次出现时才出现,在此之后一切正常。它可以正常工作一段时间,但有时可以正确粘贴,并在一段时间后删除粘贴的文本。 iOS 12,13.6中存在相同问题
这是我的代码:-
func textView(_ textView: UITextView,shouldChangeTextIn range: NSRange,replacementText text: String) -> Bool {
if let paste = UIPasteboard.general.string,text == paste {
print("paste")
if (textView.text + text).containsEmoji(){
return false
}else{
return true
}
}
return textView.text.count + (text.count - range.length) <= 300}
func textViewDidChange(_ textView: UITextView){
if textView.text.count >= 300{
let trimstring = String(textView.text.prefix(300))
textView.text = trimstring
}
}
解决方法
如果您只需要前300个字符,则您的前缀函数应采用'300'而不是'320'...
func textViewDidChange(_ textView: UITextView){
if textView.text.count >= 300{
let trimString = String(textView.text.prefix(300)) // <- try this
textView.text = trimString
}
}
编辑
此外,如果您不想将字符串替换为与剪贴板不匹配的内容,则“ shouldChangeTextIn”中的最后一个return语句应为false。那可能是你的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。