首页 > 解决方案 > SwiftUi 有没有办法在 TextField 中获取文本

问题描述

我最近从 UIKit 迁移到 SwiftUi 2.0,我正在使用 SwiftUI 重建我的应用程序。在 UIKit 中,我有一个文本框,在该文本框内我有一个发布按钮,我试图在 SwiftUi 中做同样的事情,但没有成功。在 SwiftUi 的下图中,您可以看到 Text 在 TextField 之外。这是我对该地区的代码

      HStack {
                TextField("", text: $Postdata)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                    .frame(height: 38)
                        Text("Post")
                            .foregroundColor(.white)
                            .padding(.trailing, 10)
                    }

这就是它在 UIKit 中的样子

在此处输入图像描述

这就是我在 SwiftUI 中的方式,因为您可以看到帖子文本在 TextField 之外,任何建议都会很棒

在此处输入图像描述

标签: swiftswiftuiswiftui-text

解决方案


使用ZStack,我们可以在 z 轴上排列视图。Spacer() 也不会像EmptyView(). 它只提供空间作为名称本身。

 struct ContentView: View {
        @State var postdata = ""
        var body: some View {
            ZStack {
                TextField("", text: $postdata)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                    .frame(height: 38)
                HStack {
                    Spacer()
                    Button(action: {
                        
                    }, label: {
                        Text("Post")
                            .bold()
                            .foregroundColor(.green)
                            .padding(.trailing, 10)
                    })
                }
            }
        }
    }

推荐阅读