UITextView长度问题

4 uitextview swift

我UITextView启用了滚动功能,我可以更改内部文本的字体和大小.那么,我该如何设置文本限制?我已经尝试设置最大行数和最大字符数,但它不起作用,因为我需要设置文本的大小限制,我该怎么做?

Chr*_*örz 10

你必须实现UITextViewDelegate:

class ViewController: UIViewController, UITextViewDelegate {
Run Code Online (Sandbox Code Playgroud)

然后在viewDidLoad方法中设置textView的委托:

yourTextView.delegate = self
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用该shouldChangeTextInRange方法检查字母:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
  let maxtext: Int = 140
  //If the text is larger than the maxtext, the return is false

  // Swift 2.0
  return textView.text.characters.count + (text.characters.count - range.length) <= maxtext

  // Swift 1.1
  // return countElements(textView.text) + (countElements(text.length) - range.length) <= maxtext 

}
Run Code Online (Sandbox Code Playgroud)

这个解决方案的好处是,你甚至可以控制剪切/复制和粘贴.因此,用户无法通过复制欺骗该字段接受更多字母.