键盘上的删除按钮时,我不希望代码起作用

单击删除按钮后,我想停用以下代码。

我想将在文本字段中输入的值显示为(XXX)XXX XXXX,但是当单击删除按钮时,由于插入而不会将其删除。

我怎样才能做到这一点?

我的代码:

extension CreateOrEditVC:UITextFieldDelegate{
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {


        if number.text!.count == 1 {
            number.text!.insert("(", at: number.text!.startIndex)
        }

        if number.text!.count == 4 {
            number.text!.insert(")", at: number.text!.index(number.text!.startIndex, offsetBy: 4))
        }

        if number.text!.count == 5 {
            number.text!.insert(" ", at: number.text!.index(number.text!.startIndex, offsetBy: 5))
        }

        if number.text!.count == 9 {
            number.text!.insert(" ", at: number.text!.index(number.text!.startIndex, offsetBy: 9))
        }


        guard let textFieldText = number.text, let rangeOfTextToReplace = Range(range, in: textFieldText) else {
                return false
        }

        let substringToReplace = textFieldText[rangeOfTextToReplace]
        let count = textFieldText.count - substringToReplace.count + string.count
        return count <= 14
    }
}
评论