swift - 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 之外,任何建议都会很棒
解决方案
使用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)
})
}
}
}
}
推荐阅读
- java - 当我想缩写两个单词时出现错误
- java - Spring集成如果服务器关闭连接,如何处理它并在接收任意事件时打开
- java - 调用包含 Either 和通配符的方法时出现编译错误
- c++ - 无法使用 stringstream 读取 int 和 double
- excel - 使用求解器或其他方法在 excel 中找到非线性问题的全局最优值?
- excel - 在 VBA 数组的 255 个字符限制上欺骗 Excel
- php - 如何从 Android 向 PHP 发出 post 请求?
- javascript - HTML 代码被放置为文本而不是呈现 - 更新
- mysql - 从 Pyspark 加载到 Mysql 时忽略错误
- sql-server - T-SQL 存储过程已停止返回从 URL 检索的值