在文本字段中键入时在文本字段字符之间添加连字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在文本字段中键入时在文本字段字符之间添加连字符相关的知识,希望对你有一定的参考价值。
我有一个最大字符范围为7的文本字段,在3个字符之后,我想添加减号字符,然后编写其余字符,如此示例555-5555。这是我的代码,但这不起作用,我该如何解决这个问题?
// MARK: -UITextField Action
@objc func textFieldDidChanged(_ textField:UITextField ){
//print(PlaceTextField.text!)
if(textField.text?.count == 4){
if(textField.text?.contains("-"))!{
textField.text!.removeLast()
textField.text!.removeLast()
}
}
if(textField.text?.count == 3){
print("-
")
textField.text = textField.text! + "-"
}
}
我试图从Here解决但不能正常工作。
答案
如果您不将粘贴文本复制到文本字段,这应该有效。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if let text = textField.text, let textRange = Range(range, in: text) {
let updatedText = text.replacingCharacters(in: textRange, with: string)
if textField.text?.count == 3 && updatedText.count == 4 {
textField.text = textField.text! + "-" + string
return false
}
if textField.text?.count == 5 && updatedText.count == 4 {
let text = textField.text!
textField.text = String(text.prefix(3))
return false
}
}
return true
}
P.S - 您的文本字段键盘应为数字键盘。
yourTextField.keyboardType = .numberPad
另一答案
你可以使用我在这个gist的方法。它允许您为电话号码或其他任何内容创建自己的模式,然后使用。希望它有所帮助!
以上是关于在文本字段中键入时在文本字段字符之间添加连字符的主要内容,如果未能解决你的问题,请参考以下文章
JPA:如何将字符串持久化到数据库字段中,键入 MYSQL 文本