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

SwiftUI中如何让用户收起数字键盘?

在SwiftUI数字键盘TextField中添加收起键盘按钮的方案

可以通过给TextField绑定焦点状态,并配合键盘工具栏添加"完成"按钮的方式实现,同时完全保留点击其他输入框切换焦点的功能。

实现代码

struct ContentView: View {
    @State private var amountRaw = ""
    @FocusState private var isAmountFocused: Bool
    
    var body: some View {
        TextField("Amount", text: $amountRaw)
            .keyboardType(.numberPad)
            .focused($isAmountFocused)
            .toolbar {
                ToolbarItem(placement: .keyboard) {
                    Button("完成") {
                        isAmountFocused = false
                    }
                }
            }
    }
}

原理说明

  • 使用@FocusState属性包装器绑定TextField的焦点状态,当isAmountFocused设为false时,TextField失去焦点,键盘自动收起。
  • 通过.toolbar给数字键盘添加一个"完成"按钮,点击按钮时修改焦点状态即可收起键盘。
  • 若页面存在其他输入框,只需给每个输入框绑定各自的@FocusState变量,就能正常实现焦点切换,不会受到此方案的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:00:55