You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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效果

预期UI效果

点击TextField后的效果

点击TextField后的效果

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

注释Picker后置灰效果

内容的提问来源于stack exchange,提问作者iamarnold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:06:00