SwiftUi 有没有办法在 TextField 中获取文本

Posted

技术标签:

【中文标题】SwiftUi 有没有办法在 TextField 中获取文本【英文标题】:SwiftUi is there a way to get a Text inside a TextField 【发布时间】:2020-12-29 03:59:29 【问题描述】:

我最近从 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 之外,任何建议都会很棒

【问题讨论】:

【参考方案1】:

使用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)
                    )
                
            
        
    

【讨论】:

以上是关于SwiftUi 有没有办法在 TextField 中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:在输入之前将 TextField 大小扩展到字体大小

SwiftUI TextField 数字输入

SwiftUI TextField 强制小写

SwiftUI:UIAlertController 的 textField 在 UIAlertAction 中没有响应

SwiftUI - 有没有办法在不覆盖子视图的任何手势的情况下向视图添加手势?

在 SwiftUI 中捕获文本字段值而不按返回键 [重复]