Swift - 限制UITextview的行数

时间:2017-01-17 23:54:25

标签: ios swift uitextview

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

textView.textContainer.maximumNumberOfLines = 10
textView.textContainer.lineBreakMode = .byTruncatingTail

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

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

1 个答案:

答案 0 :(得分:3)

实现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
    }