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

yrdbyhpb  于 2023-01-04  发布在  Swift
关注(0)|答案(1)|浏览(143)

在SwiftUI中,TextField("", text: $input)有这样的自动行为,当你按下Done时,键盘被解除。这正是我想要的Done按钮。
但是,如果您使用TextField("", text: $input, axis: .vertical),则完成按钮将变为换行,并且不再关闭键盘。
我需要可滚动的文本字段为TextField("", text: $input, axis: .vertical)。同时,按下完成按钮,而不是行更改解散键盘。有人知道如何实现它吗?谢谢!

xxhby3vn

xxhby3vn1#

我认为你必须在键盘上方增加一个按钮,叫做工具栏按钮
希望这能有所帮助

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
                }
            }
        }
    }
}}

相关问题