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
相关产品推荐
相关产品推荐

