从Textview中减去字符

时间:2018-08-21 03:13:22

标签: swift char textview

我有一个textView充当用户的简历。该应用程序的另一个功能是显示用户简历的预览,但只能预览,因此应限制字符数。例如,我只希望显示textview的总字符数中的30个字符。所以我想到了Id实现shouldChangeTextIn:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let newText = (textView.text as NSString).replacingCharacters(in: range, with: text)
    return newText.count < 30
}

但是不起作用,因为这并不适合这种情况。如果要限制输入的字符数,但在读取数据并将其显示在文本视图中时不限制输入字符数,则可以。

如果我的数据库中存储了一个“ bio”字段,并且我将该信息称为要显示在textView中,那么如何只显示前30个字符,而不显示整个字段? strong>

2 个答案:

答案 0 :(得分:1)

最初使用String的prefix(maxLength:int)函数将字符串分配给textView时,可以限制该字符串。

let textView = UITextView()
textView.isEditable = false
textView.text = String(bioFromDatabase.prefix(30))

答案 1 :(得分:1)

如果您有UITextView来获取文本,并且有UILabel来显示裁剪后的生物信息,这就是您应该这样做的方式。

let limit = 30

func textViewDidEndEditing(_ textView: UITextView) {
    label.text = String(textView.text.prefix(limit)) //define your limit outside or hard code it as you wish.
}

或者您可以使用其他代表实时对其进行更新。

func textViewDidChange(_ textView: UITextView) {
    label.text = String(textView.text.prefix(limit))
}