【发布时间】:2018-03-12 18:34:58
【问题描述】:
如何覆盖此 UITextField 函数,以限制最大字符数?
override func shouldChangeText(in range: UITextRange, replacementText text: String) -> Bool {
}
我对堆栈进行了一些研究,但我只能找到这个函数(见下文)。首先,我看不出这是如何覆盖的,其次,它使用 NSRange 作为我有 UITextRange 的参数。如何实施?谢谢
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
let currentString: NSString = textField.text! as NSString
let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
return newString.length <= 4
}
我失败的尝试:
override func shouldChangeText(in range: UITextRange, replacementText text: String) -> Bool {
let currentString: NSString = self.text! as NSString
let newString: NSString = currentString.replacingCharacters(in: range, with: text) as NSString
return newString.length <= 4
}
错误:无法将“UITextRange”类型的值转换为预期的参数类型“NSRange”(又名“_NSRange”)
【问题讨论】:
标签: swift count uitextfield character-limit