swift - 将 :00 附加到文本字段中输入的任何内容
问题描述
我下面的代码限制用户只能在文本字段中输入 2 个数字。我要做的就是将“:00”附加到输入到文本字段中的任何内容中。因此,如果用户输入 30。文本字段应为 30:00。下面列出了所有代码。
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var txtMobileNumber: UITextField!
let MAX_LENGTH_PHONENUMBER = 2
let ACCEPTABLE_NUMBERS = "0123456789"
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newLength: Int = textField.text!.count + string.count - range.length
let numberOnly = NSCharacterSet.init(charactersIn: ACCEPTABLE_NUMBERS).inverted
let strValid = string.rangeOfCharacter(from: numberOnly) == nil
return (strValid && (newLength <= MAX_LENGTH_PHONENUMBER))
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
txtMobileNumber.delegate = self
}
}
解决方案
你需要
aTextField.addTarget(self, action: #selector(self.textFieldDidChange), for: UIControlEvents.editingChanged)
}
@objc func textFieldDidChange(_ textField: UITextField) {
if textField.text!.count == 2 {
textField.text = textField.text! + ":00"
}
}
推荐阅读
- java - 获取字符串中“EMPTY SPACE”的长度
- python - 拆分和连接二维数组中的元素
- javadoc - 如何包含和链接到外部 javadocs
- r - 调整森林图的边距,脚注
- javascript - 如何在使用js相应地搜索所有数据时调用特定的Json对象?
- python - 在 Flask 中加载 Unity WebGL
- python - Python Flask 仅在浏览器中显示从 OpenCV 流式传输的实时视频中的一帧
- vhdl - 使用 GHDL 仿真器编译整个 Xilinx ISE unisims 和 XilinxCoreLib 库(减去安全 ip)
- windows - DebugDiag 性能分析失败并出现错误 System.ArgumentException
- javascript - 尝试安装farmhash时如何解决错误