【发布时间】:2021-02-09 02:35:21
【问题描述】:
当输入超过允许的字符数时,我想显示与图片中相同的警告。这会在导入时发生,无需任何其他操作。
这是我限制字符的代码:
private func textLimit(existingText: String?, newText: String, limit: Int) -> Bool {
let text = existingText ?? ""
let isAtLimit = text.count + newText.count <= limit
return isAtLimit
}
和委托:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return self.textLimit(existingText: textField.text, newText: string, limit: 5)
}
我找到了解决办法:
private func textLimit(existingText: String?, newText: String, limit: Int) -> Bool {
let text = existingText ?? ""
let limitText = text.count + newText.count
let isAtLimit = text.count + newText.count <= limit
if limitText > limit {
var alert: UIAlertController!
alert = UIAlertController(title: "", message: "Character limit exceeded", preferredStyle: .alert)
self.present(alert, animated: true, completion: nil)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
alert.dismiss(animated: true, completion: nil)
}
}
return isAtLimit
}
但是如何在粘贴字符串时自动断开尾随字符?而当你把光标放在某处添加文字时,多余的字符会被替换掉吗? 希望大家理解这个问题,对不起我的英语不好!
【问题讨论】:
-
您的限制字符代码看起来不错;是吗?如果是这样,关于警报的部分在哪里?
-
查看此文本字段委托方法的实现 - stackoverflow.com/questions/433337/…
标签: ios swift uitextfield