Swift - 限制 UITextview 行中的字符数

Mon*_*WTF 3 uitextview ios swift

我有以下代码来限制 UITextView 中的行数

textView.textContainer.maximumNumberOfLines = 10
textView.textContainer.lineBreakMode = .byTruncatingTail
Run Code Online (Sandbox Code Playgroud)

但是有没有办法限制每行的字符数?如何将每行的限制设置为 50 个字符?

编辑: 我尝试了尽可能重复的解决方案,但限制应用于整个文本,我需要为每一行设置限制。

Jos*_*ann 5

实现 shouldChangeTextIn 并在任何行的字符数超过允许数时返回 false:

    func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        let maxAllowedCharactersPerLine = 10
        let lines = (textView.text as NSString).replacingCharacters(in: range, with: text).components(separatedBy: .newlines)
        for line in lines {
            if line.characters.count > maxAllowedCharactersPerLine {
                return false
            }
        }
        return true
    }
Run Code Online (Sandbox Code Playgroud)