private let maxInputCount = 30
private var isContentTextViewEnable = true
func textViewDidChange(_ textView: UITextView) {
isContentTextViewEnable = true
/// 获取当前键盘类型
let mode = UITextInputMode.activeInputModes[0]
/// 获取当前键盘语言
let lang = mode.primaryLanguage
/// 如果语言是汉语(拼音)
if lang == "zh-Hans" {
/// 取到高亮部分范围
_ = self.textView.markedTextRange
if let selectedRange = self.textView.markedTextRange {
/// 取到高亮部分
_ = self.textView.position(from: selectedRange.start, offset: 0)
} else {
/// 如果取不到高亮部分,代表没有拼音
if self.textView.text.length > maxInputCount {
/// 当期超过最大限制时
self.textView.text = String(self.textView.text.prefix(maxInputCount))
self.isContentTextViewEnable = false
} else {
/// 如果没超出,那么就计算剩余字数
}
}
} else {
/// 如果语言不是汉语,直接计算
if self.textView.text.count >= maxInputCount {
self.textView.text = String(self.textView.text.prefix(maxInputCount))
}
}
placeholderLabel.isHidden = self.textView.text.count == 0 ? false : true
countLabel.text = "\(self.textView.text.count)/\(maxInputCount.description)"
}
swift-textView 限制
最新推荐文章于 2022-11-10 15:25:17 发布