我在 Swift UI 中的 TextField 对点击和单击无响应,无法输入文本,代码有问题吗?
Posted
技术标签:
【中文标题】我在 Swift UI 中的 TextField 对点击和单击无响应,无法输入文本,代码有问题吗?【英文标题】:My TextField in Swift UI is Unresponsive to taps and clicks, text cannot be input, is there an issue with the code? 【发布时间】:2020-04-22 21:54:04 【问题描述】:您好,我是一名中级工程师,拥有 swift 和 swift UI。
目前,我在使用 TextField() 时遇到问题,它对点击和点击没有响应,因此键盘不显示,
但是,当它是 VStack 中的两个主要元素之一时,它确实会显示出来,但除此之外,它不起作用,
代码有问题吗?任何人都可以找到解决方法或解决方法吗?
谢谢,迈尔斯
@State var textField = ""
var body: some View
returnJoinModalContent()
func returnJoinModalContent() -> some View
let accentColor = Color.blue
return VStack(alignment: .center)
HStack
Text("Join Game")
.bold()
.font(.largeTitle)
.padding()
Spacer()
Button(action:
//self.hideModal()
)
Image(systemName: "xmark.circle.fill")
.resizable()
.frame(width: 50,height: 50)
.foregroundColor(accentColor)
.padding()
.padding(.bottom,170)
VStack(alignment: .leading)
TextField("Enter Game Code",text: self.$textField)
.font(.largeTitle)
Rectangle()
.frame(height: 6)
.foregroundColor(accentColor)
.padding()
HStack
Button(action:
//self.joinGame()
)
ZStack
RoundedRectangle(cornerRadius: 90)
.frame(width: 200,height: 70)
.foregroundColor(accentColor)
Text("Ready!")
.bold()
.font(.title)
.foregroundColor(Color.white)
.padding(.vertical,20)
HStack
Image(systemName: "info.circle")
.resizable()
.frame(width:60,height:60)
.foregroundColor(accentColor)
Text("Ask your host for the game code, it can be found at the bottom of the player lobby")
.padding()
Spacer()
.padding(.top,60)
.padding(.horizontal,20)
Spacer()
.padding()
【问题讨论】:
FIX?:稍微增加文本字段的框架可以暂时解决问题,但是我仍然想知道上述错误是否有具体原因 【参考方案1】:这似乎是 swiftUI 中难以追踪的事情之一。我发现问题出在您的就绪按钮上。更具体地说,标签是一个以彩色圆角矩形为背景的 ZStack。如果您将按钮的标签替换为以下内容,则您的文本字段应该是可选的。
Text("Ready!")
.bold()
.font(.title)
.foregroundColor(Color.white)
.frame(width: 200,height: 70)
.background(accentColor)
.mask(RoundedRectangle(cornerRadius: 90))
【讨论】:
问题解决了!!你知道为什么这会阻止文本字段被正确识别吗? 不,我不知道。这似乎只是一个奇怪的错误。【参考方案2】:我发现TextField
上的overlay
或TextField
的容器可能会导致它无响应
你应该删除它并用ZStack
替换它
【讨论】:
以上是关于我在 Swift UI 中的 TextField 对点击和单击无响应,无法输入文本,代码有问题吗?的主要内容,如果未能解决你的问题,请参考以下文章
当 React Material UI 中的 TextField 中存在值时自定义自动完成 CSS
从 Swift 中的 textField 获取 Webview URL