如何在textview swift中保持一些文本不可编辑和一些可编辑



我有一个文本视图,我想让一些文本不可编辑,另一些文本可编辑。FOr ex.我的文本视图有文本"我的名字是:Sandesh Sardar"。所以我的名字应该是不可编辑的,其他文本应该是可编辑的。Swift 5中有什么方法可以做到这一点吗?

使用textrange可以实现这一点吗。意味着如果我有不可编辑的大文本?如果我有multipe这样的文本视图,还有什么更好的方法吗?

或者,我们如何在文本视图中的某个范围后停止编辑?

使用这段代码来获得结果。这意味着如果现有文本是My name is:,则textView在编辑时不会返回true。例如,如果您想在用户输入大约30个字符后停止,请像下面这样在内部进行检查。

extension ViewController: UITextViewDelegate {
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if let textViewText = textView.text {
if textViewText == "My name is:" && text == "" {
return false
}
//For text range
if let textRange = Range(range, in: textViewText) {
let updatedText = textViewText.replacingCharacters(in: textRange,
with: text)
return updatedText.count < 30 + 11 //11 characters for *My name is:*
}
}
return true
}
}

最新更新