Swift 5: UITextField AttributedText не обновляется при смене валюты

У меня есть поле CurrencyTextfield, которое является CurrencyTextFieldRepresentable, потому что я использую его внутри представления SwiftUI. У меня есть строка с атрибутами, которую я обновляю в инициализации в setStyles() и в editChanged(), проблема в том, что я меняю валюту с помощью ActionSheet в SwiftUI (это работает нормально), например, с ARS на USD в текстовом поле. $0 по-прежнему отображается, когда должен быть виден USD0, однако, когда я начинаю писать, например, 100, текст корректно обновляется до USD100. Как я могу обновить текстовое поле при смене типа валюты? Не только когда я редактирую. Это мой код:

      class TextFieldTest: UITextField {
@Binding private var amount: Int
@Binding var currency: Currency
init(amount: Binding<Int>, currency: Binding<Currency>) {
    self._amount = amount
    self._currency = currency
    super.init(frame: .zero)

    addTarget(self, action: #selector(editingChanged), for: .editingChanged)
    addTarget(self, action: #selector(resetSelection), for: .allTouchEvents)
    delegate = self
    
    setStyles()
}
 @objc private func resetSelection() {
    selectedTextRange = textRange(from: endOfDocument, to: endOfDocument)
}
 @objc private func editingChanged() {
    attributedText = addAttributedString(amountString)
    amount = Int(amountString.onlyDigits) ?? 0
}
var decimal: Decimal {
    let numberString = textValue.onlyDigits
    let decimal = Decimal(string: numberString, locale: self.formatter.locale) ?? 0
    return decimal
}

var amountString: String {
    formatter.string(from: NSDecimalNumber(decimal: decimal)) ?? "0"
}

private func setStyles() {
    textAlignment = .center
    keyboardType = .decimalPad
    attributedText = addAttributedString(amountString)
    
}
   private func addAttributedString(_ string: String) -> NSMutableAttributedString {
    let mainString = currency.symbol + string
    let stringToColor = currency.symbol
    let range = (mainString as NSString).range(of: stringToColor)
    let mutableAttributedString = NSMutableAttributedString.init(string: mainString)
    mutableAttributedString.addAttributes([
        .foregroundColor: .green,
        .font: .systemFont),
        .baselineOffset: 4
    ], range: range)
    
    return mutableAttributedString
 }
}

0 ответов