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

How to keep some text non editable and some editable in textview swift?

我有一个文本视图,我想让一些文本不可编辑,而其他文本可编辑。 对于前。我的文本视图有文本 "My name is: Sandesh Sardar"。所以我的名字应该是不可编辑的,其他文本应该是可编辑的。在 Swift 5 中有什么方法可以做到这一点?

这可以使用文本范围吗?意味着如果我有大的不可编辑的文本? 如果我有多个这样的文本视图,还有什么更好的方法吗?

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

使用这段代码得到你的结果。这意味着如果现有文本是 My name is:,则 textView 在编辑时不会 return 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
    }
}