从 Textview 中减去字符

Subtract Characters from Textview

我有一个用作用户简历的 textView。该应用程序的另一个功能是显示用户简历的预览,但只是预览,因此字符数应该受到限制。例如,我只想显示 textview 的总字符数中的 30 个字符。所以我想我应该实施 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 个字符,而不是显示整个领域?

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

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

如果您有一个 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))
}