在iOS中如何将文本字段分隔为数字格式的逗号?

在iOS中如何将文本字段分隔为数字格式的逗号?,ios,swift,uitextfield,Ios,Swift,Uitextfield,我希望号码是12345678,所以当我在文本字段中键入时,它会显示出来。文本字段的最大输入值为8位 我使用了以下代码,但输入7位数字后无法清除数字 我怎么修理它 override func viewDidLoad() { myTextfield.delegate = self self.myTextfield.keyboardType = .numberPad myTextfield.addTarget(self, action:#selector(textFieldV

我希望号码是12345678,所以当我在文本字段中键入时,它会显示出来。文本字段的最大输入值为8位

我使用了以下代码,但输入7位数字后无法清除数字

我怎么修理它

override func viewDidLoad() {
    myTextfield.delegate = self
    self.myTextfield.keyboardType = .numberPad

    myTextfield.addTarget(self, action:#selector(textFieldValDidChange), for: .editingChanged)
}

public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    return range.location < 8
}

@objc func textFieldValDidChange(_ textField: UITextField) {
    let formatter = NumberFormatter()
    formatter.numberStyle = NumberFormatter.Style.decimal
    if textField.text!.count >= 1 {
        let number = Double(textField.text!.replacingOccurrences(of: ",", with: ""))
        let result = formatter.string(from: NSNumber(value: number!))
        textField.text = result!
    }
}
override func viewDidLoad(){
myTextfield.delegate=self
self.myTextfield.keyboardType=.numberPad
myTextfield.addTarget(self,action:#选择器(textFieldValDidChange),用于:.editingChanged)
}
public func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
返回范围.位置<8
}
@objc func textField valdidchange(textField:UITextField){
let formatter=NumberFormatter()
formatter.numberStyle=NumberFormatter.Style.decimal
如果textField.text!.count>=1{
让number=Double(textField.text!.replacingOccurrences(of:,,,with:))
让result=formatter.string(from:NSNumber(值:number!))
textField.text=结果!
}
}
public func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
返回范围.位置<10
}
8位数字加2个逗号,即10个字符(最后一个为索引9)。

public func textField(\utextfield:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
返回范围.位置<10
}

8位加2个逗号,即10个字符(最后一个为索引9)。

如果有7位加两个逗号,光标位于末尾,则范围为。位置将为9。因此,请使用:

return range.location <= 9

返回range.location当有7位数字和两个逗号,且光标位于末尾时,
range.location
将为9。因此,请使用:

return range.location <= 9
返回范围.location