从 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))
}
我有一个用作用户简历的 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))
}