ios - 为什么 'textViewDidChangeSelection' 方法在 Swift 中陷入无限循环?
问题描述
我的应用程序使用 UITextView 在聊天视图中输入文本。我使用这个答案为此添加了一个占位符。尝试删除较长的标记文本时会出现问题,然后程序陷入无限循环。对于较短的文本,该程序可以正常工作并删除选定的文本。你知道可能出了什么问题吗?如何解决?
func textViewDidChangeSelection(_ textView: UITextView) {
if placeholderState == .enabled {
if self.window != nil {
textView.selectedTextRange = textView.textRange(from: textView.beginningOfDocument,
to: textView.beginningOfDocument)
}
}
}
解决方案
更改 selectedTextRange 将再次调用委托的 textViewDidChangeSelection。如果你想改变你的文本视图的选择行为,你可以继承 UITextView。