跳到主要内容

如何在SwiftUI中关闭键盘

· 阅读需 3 分钟
GoSwiftUI
goswiftui.com

如何在 SwiftUI 中关闭键盘

了解如何在 SwiftUI 中以编程方式关闭键盘。

在 iOS 15 中,SwiftUI 引入了一种本地方法,使用新的属性包装器@FocusStatefocused(_:)修改器来以编程方式关闭键盘。

如何在 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

当点击文本字段时:

  1. 它将获得焦点。
  2. isFocused将变为true
  3. 键盘将显示。

当我们将isFocused重新设置为false时:

  1. 文本字段放弃焦点。
  2. 键盘将关闭。

使用isFocused以编程方式关闭键盘。

使用isFocused以编程方式关闭键盘。