Обновите неактивные TextFields, используя значение из активного TextField в SwiftUI - PullRequest
0 голосов
/ 23 октября 2019

Можно ли привязать TextFields к другим TextFields в SwiftUI, где значение в активном TextField используется для обновления значений неактивных TextFields?

В приведенном ниже коде я хотел бы ввести значениеиз 10 в TextField X и TextField Y автоматически отображает число 13, которое равно 10 + 3. В качестве альтернативы, я хотел бы ввести 18 в TextField Y и число 9 появилось бы в TextField X, который рассчитывается из 18 / 2.

struct ContentView: View {

    @State private var x = 0.0
    @State private var y = 0.0

    private var numberFormatter: NumberFormatter {
        let numFormatter = NumberFormatter()
        numFormatter.usesSignificantDigits = true
        return numFormatter
    }

    var body: some View {

        VStack(spacing: 20) {
            HStack {
                TextField("Enter X", value: $x, formatter: numberFormatter)
                    .frame(width: 120)
                Text("X where X = Y / 2")
                    .frame(alignment: .leading)
            }
            HStack {
                TextField("Enter Y", value: $y, formatter: numberFormatter)
                    .frame(width: 120)
                Text("Y where Y = X + 3")
                    .frame(alignment: .leading)
            }
        }
        .padding()
        .frame(width: 400)

    }
}

1 Ответ

0 голосов
/ 23 октября 2019

Код ниже выполняет то, что вы просили, но учтите, что x и y обновляются только после , когда пользователь нажимает кнопку возврата на клавиатуре, а не автоматически.

TextField("Enter X", value: $x, formatter: numberFormatter, onEditingChanged: { _ in
    self.y = self.x + 3
})
TextField("Enter Y", value: $y, formatter: numberFormatter, onEditingChanged: { _ in
    self.x = self.y / 2
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...