使用 SwiftUI 启动 TextField 时出现 VStack 错误
Posted
技术标签:
【中文标题】使用 SwiftUI 启动 TextField 时出现 VStack 错误【英文标题】:VStack error when I initiate a TextField using SwiftUI 【发布时间】:2019-12-01 17:20:57 【问题描述】:在我创建此 TextField
之前没有错误。
另外,如果我像这样创建TextField("Placeholder", text: .constant(""))
,也不会出现错误。
我正在尝试使用 Int 类型的 TextField 中的数据。
struct ContentView: View
@State private var answer: Int = 0
var body: some View
VStack(alignment: .center)
Text("some text")
Spacer()
TextField($answer)
【问题讨论】:
【参考方案1】:错误在于TextField
,实际上是:
无法使用类型为“(绑定)”的参数列表调用类型“TextField<_>”的初始化程序
要解决这个问题,您需要首先提供title
和绑定参数的标签:text
:
TextField("This can be an empty string", text: $answerString)
注意TextField
不能单独接受一个数字作为绑定参数!您还必须提供Formatter
才能使其正常工作:
TextField("", value: $answer, formatter: NumberFormatter())
正如我提到的here,你不应该相信 Xcode 错误的原因,特别是当你使用 SwiftUI 时。
【讨论】:
以上是关于使用 SwiftUI 启动 TextField 时出现 VStack 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在按钮单击时在 SwiftUI 中为 TextField 设置文本
检测用户何时停止/暂停在 TextField 中写入 - SwiftUI
SwiftUI macOS 在 TextField 处于活动状态时使用箭头键滚动列表