我有一个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>
答案 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))
}