SwiftUI实现TextField唤起Picker并监听其开闭状态方案咨询
需求实现:带菜单式Picker的TextField并监听弹窗状态
我想实现一个TextField,点击时唤起菜单样式的Picker,核心需求是能够监听Picker的打开/关闭状态,执行自定义UI更新操作。但SwiftUI原生似乎无法实现该功能,想了解能否通过Swift原生实现并使用UIViewRepresentable封装给SwiftUI使用。
以下是我目前的SwiftUI代码:
@State var options: [String] = ["Option 1", "Option 2", "Option 3"] @State var selectedOption: String = "" let placeholder: String = "Placeholder" Menu { Picker("Options", selection: selectedOption) { ForEach(options, id: \.self) { option in Text(option).tag(option) } } .onChange(of: selectedOption) { newValue in print("selected:\(newValue)") // <---只能检测是否从选择器中选中了选项 } } label: { HStack { TextField(placeholder, text: $selectedOption) .disabled(true) Image(systemName: "chevron.down") } .padding(.horizontal, 16.0) .frame(height: 44.0) }
预期UI效果

点击TextField后的效果

注释Picker后,菜单样式Picker置灰的效果

内容的提问来源于stack exchange,提问作者iamarnold
相关产品推荐
相关产品推荐

