Comportement inattendu dans le conteneur de formulaire SwiftUI lors de l'utilisation de plusieurs boutons [dupliquer]
Nov 27 2020
Étant donné le code ci-dessous, je m'attendais à voir la sélection ZERO
après avoir appuyé sur le ZERO
bouton, mais c'est toujours le cas ONE
. En fait, je n'ai pas besoin de taper sur le nom du bouton, mais au milieu de la ligne, et la sélection sera toujours ONE
. Il s'agit d'un comportement inattendu et probablement d'un bogue. Quelqu'un a une explication et / ou une solution de contournement pour cela? Utilisation d'iOS 14.0 et Xcode 12.2
struct TestForm : View {
@State var selection = ""
var body : some View {
Form {
Text("selection: \(selection)")
HStack {
Button(action: {
selection = "ZERO"
}) {
Text("ZERO")
}
Spacer()
Button(action: {
selection = "ONE"
}) {
Text("ONE")
}
}
}
}
}
Réponses
2 HarshilPatel Nov 27 2020 at 04:44
Utilisez PlainButtonStyle ().
struct ContentView: View {
@State var selection = ""
var body : some View {
Form {
Text("selection: \(selection)")
HStack {
Button(action: {
selection = "ZERO"
}) {
Text("ZERO")
.foregroundColor(.blue)
}.buttonStyle(PlainButtonStyle())
Spacer()
Button(action: {
selection = "ONE"
}) {
Text("ONE")
.foregroundColor(.blue)
}.buttonStyle(PlainButtonStyle())
}
}
}
}
J'ai ajouté .foregroundColor(.blue)
au texte du bouton parce que si vous ajoutez .buttonStyle(PlainButtonStyle())
à votre bouton, vos boutons ressembleront à du texte brut.