Ios 在swift 2中,将文本视图限制为一定数量的行

Ios 在swift 2中,将文本视图限制为一定数量的行,ios,swift,uitextview,Ios,Swift,Uitextview,我需要限制我的文本视图只有6行。如何将文本视图限制为6行?无论如何,我把字符限制在50个以内。这是很难做到的。试试下面的代码 inputTextView.textContainer.maximumNumberOfLines = 6 inputTextView.textContainer.lineBreakMode = .ByWordWrapping 对于swift 4,这一个没有任何错误: func textView(_ textView: UITextView, shouldChangeTe

我需要限制我的文本视图只有6行。如何将文本视图限制为6行?无论如何,我把字符限制在50个以内。

这是很难做到的。试试下面的代码

inputTextView.textContainer.maximumNumberOfLines = 6
inputTextView.textContainer.lineBreakMode = .ByWordWrapping

对于swift 4,这一个没有任何错误:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let existingLines = textView.text.components(separatedBy: CharacterSet.newlines)
    let newLines = text.components(separatedBy: CharacterSet.newlines)
    let linesAfterChange = existingLines.count + newLines.count - 1
    return linesAfterChange <= textView.textContainer.maximumNumberOfLines
}

对于任何设备,50个字符对于6行来说可能太小了。假设是iPhone或iPad。调整大小,使其仅适合50个字符。可随时更改。我暂时保留着它。我主要关心的是线路的数量。此时,如果我每行输入一个字符,它将变为50行。我不需要,谢谢。你解决了我的问题,但我仍然有一个问题,如果我在6行之后按enter键,尽管它不会显示它正在接受,光标也会消失。我一按backspace就得到了它,也就是说,如果我在6行之后按enter键4次,我需要按backspace键4次才能得到光标。希望你能理解。
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        let existingLines = textView.text.components(separatedBy: CharacterSet.newlines)
        let newLines = text.components(separatedBy: CharacterSet.newlines)
        let linesAfterChange = existingLines.count + newLines.count - 1
        if(text == "\n") {
            return linesAfterChange <= textView.textContainer.maximumNumberOfLines
        }

        let newText = (textView.text as NSString).replacingCharacters(in: range, with: text)
        let numberOfChars = newText.count
        return numberOfChars <= 30 // 30 characters limit
    }
}
txtView.textContainer.maximumNumberOfLines = 2