Gostaria de chamar uma função quando o valor de selectedOption for alterado. Existe uma maneira de fazer isso no SwiftUI semelhante ao editar um TextField?
Especificamente, eu gostaria de salvar a opção selecionada quando o usuário altera a selectedOption.
Aqui está o meu selecionador:
struct BuilderPicker: View {
let name: String
let options: Array<String>
@State var selectedOption = 0
var body: some View {
HStack {
Text(name)
.font(.body)
.padding(.leading, 10)
Picker(selection: $selectedOption, label: Text(name)) {
ForEach(0 ..< options.count) {
Text(self.options[$0]).tag($0)
}
}.pickerStyle(SegmentedPickerStyle())
.padding(.trailing, 25)
}.onTapGesture {
self.selectedOption = self.selectedOption == 0 ? 1 : 0
}
.padding(.init(top: 10, leading: 10, bottom: 10, trailing: 0))
.border(Color.secondary, width: 3)
.padding(.init(top: 0, leading: 15, bottom: 0, trailing: 15))
.font(.body)
}
}
Ainda sou novo no SwiftUI e gostaria de alguma ajuda. Obrigado!
[self.selectedOption].publisher.first()
API pública? Não parece API pública, mas, caramba, funciona.