             let unformattedText = value ?? ""
             let formattedText = self.formattedText(fromText: unformattedText, textMask: textMask, cursorPosition: &cursorPosition)
             if formattedText.characters.count > 0 || value != nil {
-                self.formattedText = formattedText
+                text = formattedText
             } else {
-                self.formattedText = nil
+                text = nil
             }
             placeholderLabel.isHidden = (unformattedText.characters.count > 0)
         }

        var unformattedText = unformatterText(fromText: formattedText, textMask: textMask, cursorPosition: &cursorPosition)
        let unformattedRange = self.range(fromFormattedRange: charachtersRange)

        if let originDelegate = delegateProxy.delegate,
            originDelegate.responds(to: #selector(UITextFieldDelegate.textField(_:shouldChangeCharactersIn:replacementString:))) {

            let utf16UnformattedRange = unformattedText.utf16Nsrange(fromRange: unformattedText.range(fromNsRange: unformattedRange)!)
            if !originDelegate.textField!(self, shouldChangeCharactersIn: utf16UnformattedRange, replacementString: string) {
                return false
            }
        }

        cursorPosition += string.characters.count

        let newFormattedText = self.formattedText(fromText: unformattedText, textMask: textMask, cursorPosition: &cursorPosition)
        text = newFormattedText
        placeholderLabel.isHidden = (unformattedText.characters.count > 0)

        cursorPosition = min(cursorPosition, newFormattedText.characters.count)
        let cursorIndex = newFormattedText.index(newFormattedText.startIndex, offsetBy: cursorPosition)
        selectedCharachtersRange = cursorIndex..<cursorIndex

        sendActions(for: .editingChanged)

