SwiftUI .onTapGesture не работает, пока список не прокручен
У меня есть текстовое поле, используемое для обозначения дверных проемов. Вы нажимаете на текстовое поле, и ниже разворачивается список со списком общих имен комнат. Я не могу выбрать элемент из списка, пока не прокручу список.
Вот мой код:
internal var body: some View {
ZStack {
VStack {
HStack { /// the text field
TextField(self.namePlaceholder, text: $viewModel.name)
.onChange(of: viewModel.name) { newValue in
typedRoomName = newValue
}
}
.onTapGesture {
showAutoRoomNames = true
}
if showAutoRoomNames { /// the list of common room names that gets filtered as you type
VStack(alignment: .leading) {
List {
ForEach(RoomNames.getFilteredCommonRoomNames(prefix: typedRoomName), id: \.self) { n in
Text(n)
.onTapGesture {
viewModel.name = n
if showAutoRoomNames {
showAutoRoomNames.toggle()
}
}
}
}
.listStyle(PlainListStyle())
}
}
}
.padding()
.frame(maxWidth: 300)
.zIndex(2.0)
}
}
}
Поэтому, если я нажму на текстовое поле, список имен развернется, и если я начну вводить имя, я могу нажать на отфильтрованное имя. Но если я не начну вводить имя, я не смогу выбрать элемент из списка, пока не прокручу список.
Блок .onTapGesture в блоке showAutoRoomNames не попадает в цель, пока я не прокручиваю его, не знаю почему.
Спасибо за любые указатели.