Ios 在swift 2中,将文本视图限制为一定数量的行
我需要限制我的文本视图只有6行。如何将文本视图限制为6行?无论如何,我把字符限制在50个以内。这是很难做到的。试试下面的代码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
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