繁体   English   中英

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

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

我有一个 textview 我想保留一些文本不可编辑和其他文本可编辑。 例如。 我的 textview 有文字“我的名字是:Sandesh Sardar”。 所以我的名字应该是不可编辑的,其他文本应该是可编辑的。 在 Swift 5 中有什么方法可以做到这一点吗?

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

或者我们如何在 textview 的某个范围之后停止编辑?

使用这段代码来获得你的结果。 这意味着textView在编辑时不会返回true ,如果现有文本是My name is: 例如,如果您想在用户输入大约 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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM