SwiftUI Переключение между Textfields не вызывает didSet или будет установлен на Опубликованный элемент - PullRequest
0 голосов
/ 18 апреля 2020

Итак, у меня есть представление с несколькими текстовыми полями. Я пытаюсь придерживаться Combine и SwiftUI, поскольку в настоящее время я изучаю, как это работает.

Я заметил, что если я переключу первых респондентов между различными текстовыми полями. Я не получаю willSet или didSet, и мои объекты не обновляются. Эти значения кажутся только вызванными, если я нажму кнопку «возврат». Мне интересно, чего мне не хватает.

По сути, я пытаюсь найти эквивалент ниже, я думаю. Любая помощь приветствуется.

optional func textFieldDidEndEditing(_ textField: UITextField)

Переменная объединения:

@Published internal var taxRate: Double = 0 {
    willSet(newValue) {
        UserDefaults.standard.set(newValue, forKey: ARCHUserDefaultKeys.taxRate)
        UserDefaults.standard.synchronize()
    }

    didSet {
        recaluateValues()
    }
}

TextField:

TextField("Tax", value: $receiptViewModel.taxRate, formatter: ARCHUtilities.percentageFormatter)
     .textFieldStyle(RoundedBorderTextFieldStyle())
     .keyboardType(UIKeyboardType.numbersAndPunctuation)
     .foregroundColor(Color.gray)
     .multilineTextAlignment(TextAlignment.center)
     .minimumScaleFactor(0.5)
     .frame(width: 75)
...