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 не попадает в цель, пока я не прокручиваю его, не знаю почему.

Спасибо за любые указатели.

0 ответов

Другие вопросы по тегам