ios - 如何在按下完成时关闭 SwiftUI 键盘中的键盘?

标签 ios swift swiftui textfield

在 SwiftUI 中,TextField("", text: $input) 具有这种自动行为,当您按完成时,键盘将消失。这正是我想要的“完成”按钮。

但是,如果您使用 TextField("", text: $input, axis: .vertical) 完成按钮将变为换行,并且将不再关闭键盘。

我需要可滚动的 TextField 作为 TextField("", text: $input, axis: .vertical)。同时,按完成按钮可以关闭键盘而不是换行。有谁知道如何实现它?谢谢!

enter image description here

最佳答案

我认为你必须在键盘上方添加一个按钮,称为工具栏按钮

希望这会有所帮助

struct ContentView: View {
private enum Field: Int, CaseIterable {
    case username
}

@State private var username: String = ""

@FocusState private var focusedField: Field?

var body: some View {
    NavigationView {
            TextField("Username", text: $username)
                .focused($focusedField, equals: .username)
        .toolbar {
            ToolbarItem(placement: .keyboard) {
                Button("Done") {
                    focusedField = nil
                }
            }
        }
    }
}}

关于ios - 如何在按下完成时关闭 SwiftUI 键盘中的键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74989806/

相关文章:

iphone - 在 Safari 而不是 UIWebView 中打开 YouTube URL

同一部手机上的 iOS App Release 版本和 Dev 版本

ios - 以编程方式在 UICollectionView 中对齐 UILabel 大小

ios - 从 UIDocumentBrowserViewController 获取 UIActivityViewController 的 sourceRect

iphone - 如何在 Objective C 中使用 NSData 创建 json 对象?

ios - 如何将数据添加到 CollectionView 中,仅用于数组 Swift 中的新附加索引

swift - 如何使用 Swift 在 TableViewController 中包含不是主查询表的 Parse 类的计数?

ios - SwiftUI 不会在嵌套 NavigationLink 目标中使用 ObservedObject 更新 UI

iOS UI 测试以调整 SwiftUI 应用程序上的选择器值

SwiftUI 将保存的值传递给父 View