首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI iOS 15键盘工具栏不显示textfield

SwiftUI iOS 15键盘工具栏不显示textfield
EN

Stack Overflow用户
提问于 2021-11-11 03:31:27
回答 2查看 502关注 0票数 1

我对SwiftUI非常陌生,我试着在这里和那里教自己一些东西。但有一个问题一直困扰着我.我不明白为什么工具栏对我不起作用/显示。

示例代码在下面,但是按钮没有显示,也没有实际的条形图。我有iOS 15.2,XCode 13.2测试版。

代码语言:javascript
复制
TextField("placeholder", text: $text)
.toolbar {
   ToolbarItemGroup(placement: .keyboard) {
       HStack {
           Button(action: {
               hideKeyboard()
           }) {
               Text("Done")
           }
       }
   }
}

编辑:

弄明白了为什么..。只是因为某种原因,它在滚动视图中不能工作。有人知道为什么吗?

EN

回答 2

Stack Overflow用户

发布于 2022-03-02 18:06:42

在iOS 15.2下- Xcode 13.2 (非beta)。

代码语言:javascript
复制
struct ContentView: View {
    @State var text: String = ""
    
    var body: some View {
        NavigationView {
            VStack {
                Text(text)
                TextField("Enter your name", text: $text)
            }
            .padding()
            .navigationTitle("SwiftUI")
            .toolbar {
//                ToolbarItem(placement: .keyboard) {
//                    Button("Ok") {
//                        print("ok")
//                    }
//                }
                ToolbarItemGroup(placement: .keyboard) {
                    HStack {
                        Button("Press Me") {
                            print("Pressed")
                        }
                        Spacer()
                        Button(action: {
                            print("done")
                        }) { Text("Done") }
                    }
                }
            }
        }
    }
}

确保将所有内容都放在VStack或类似的文件中。

票数 2
EN

Stack Overflow用户

发布于 2022-03-18 03:23:32

Xcode 13.3 (发行版),为了使工具栏显示出来,TextField.toolbar需要在NavigationView内部。

在我的特殊情况下,我不想要一个NavigationBar,所以我最终得到了这样的东西来使它工作:

代码语言:javascript
复制
var body: some View {
    NavigationView {
        VStack {
            TextField("Enter your name", text: $text)
            // Additional text fields go here, all text fields will get the toolbar.
        }
        .navigationTitle("")
        .navigationBarHidden(true)
        .navigationBarBackButtonHidden(true)
        .toolbar {
            ToolbarItemGroup(placement: .keyboard) {
                Spacer()
                Button("Dismiss") {
                    print("Bismiss keyboard...")
                }
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69922865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档