如何在SwiftUI中关闭键盘
· 阅读需 3 分钟
如何在 SwiftUI 中关闭键盘
了解如何在 SwiftUI 中以编程方式关闭键盘。
在 iOS 15 中,SwiftUI 引入了一种本地方法,使用新的属 性包装器@FocusState
和focused(_:)
修改器来以编程方式关闭键盘。
如何在 SwiftUI 中以编程方式关闭键盘
键盘的显示和隐藏基于文本字段的焦点状态。
- 当文本字段获得焦点时,键盘将显示。
- 当文本字段失去焦点时,键盘将消失。
要关闭键盘,我们需要能够控制文本字段的焦点。
如何控制焦点状态
我们可以使用focused(_:)
修改器来监听和控制特定输入的焦点状态。
此修改器需要一个名为FocusState
的特殊类型来绑定焦点状态。
以下是一个示例,其中我们在“登录”按钮被点击时隐藏键盘。
struct ContentView: View {
@State private var username = ""
// 1
@FocusState private var isFocused: Bool
var body: some View {
VStack {
// 2
TextField("用户名", text: $username)
.focused($isFocused)
Button("登录") {
// 3
isFocused = false
}
}
.padding()
}
}
1 我们创建了一个@FocusState
变量,用于与文本字段的焦点状态绑定。 2 我们使用.focused($isFocused)
修改器绑定焦点状态。 3 为了关闭键盘,我们通过将焦点状态设置为false
来取消文本字段的焦点,isFocused = false
。
当点击文本字段时:
- 它将获得焦点。
isFocused
将变为true
。- 键盘将显示。
当我们将isFocused
重新设置为false
时:
- 文本字段放弃焦点。
- 键盘将关闭。
使用isFocused
以编程方式关闭键 盘。