Я новичок в SwiftUI (как и большинство из нас)
Я пытаюсь реализовать автозаполнение TextField с местами Google, у меня работает базовая реализация c, но нажатия кнопок не отображаются. t работает над моим списком "предложений".
Код, размещенный ниже
struct CreateVenueView: View {
@ObservedObject private var viewModel: CreateVenueViewModel = CreateVenueViewModel()
@State private var selectedSport = 0 {
willSet(newValue) {
print(newValue)
}
}
var body: some View {
ZStack {
Form {
Picker(selection: $selectedSport, label: Text("Sport")) {
ForEach(Sport.all()) { sport in
Text(sport.value.capitalized)
}
}
.padding(.vertical, 5)
TextField("Venue name", text: $viewModel.venueName)
.padding(.vertical, 5)
TextField("Address", text: $viewModel.typedAddress)
.padding(.vertical, 5)
TextField("Venue detail", text: $viewModel.selectedSport)
.padding(.vertical, 5)
}
if !viewModel.addresses.isEmpty {
VStack(alignment: .leading) {
List {
ForEach(viewModel.addresses) { address in
Button(action: {
self.viewModel.selectedAddress = address
}) {
Text("\(address.displayAddress())")
}
}
}
.frame(height: CGFloat(viewModel.addresses.count * 50))
Spacer()
}
.padding()
.offset(y: 120)
.shadow(radius: 5)
.cornerRadius(5)
}
}
.accentColor(Color.Palette.accent)
.navigationBarTitle("Add Venue")
}
}
Как вы можете видеть, когда в моей модели просмотра доступны "адреса", мы показываем список предложений. gif прилагаются.
Однако действия кнопки не выполняются для всех элементов, первые два элемента регистрируют щелчки, как вы можете видеть из выделения, когда выбран второй вариант, но когда под вторым параметром выбран какой-либо элемент, вы увидите, что взаимодействие происходит с формой.
Когда у меня нет смещения или проставки, список отображается в нижней части экрана, значительно ниже формы, и все действия кнопок запускаются. Поэтому я предполагаю, что есть проблема с формой, перехватывающей события клика, в отличие от моего списка предложений.
У кого-нибудь есть идея, что я мог бы сделать, чтобы решить эту проблему?
Спасибо