作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个最大字符范围为 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("-\n")
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
关于ios - 在文本字段中键入时在文本字段字符之间添加连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294365/
我是一名优秀的程序员,十分优秀!