试图压缩一些代码,这些代码几乎是一堆复制和粘贴。它是一个数字框,每个框只有1个字符。它可以像现在一样工作,输入1个字母后,光标将跳到下一个方框,依此类推,但是该代码具有极大的重复性,并且感觉质量很低。
我设法将状态合并为单个数组,现在想尝试使用ForEach
循环生成6个字段,但是当我这样做时firstresponder
无响应
ForEach(0 ..< 6) { i in
if self.containerInputArray[i] != "∂" {
TextField(" ", text: self.$containerInputArray[i+1])
.frame(width: 70, height: nil)
.font(Font.system(size: 40))
.onAppear { self.containerArray[i+1] = "" }
.introspectTextField { disposable in
if self.containerInputArray[i] != "" && self.containerBools[i] {
self.disposable?.resignFirstResponder()
disposable.becomeFirstResponder()
self.containerBools[i] = false
}
}
}
}
如果我在手动索引中使用了6次,那么上面的段就可以正常工作,但是当我使用循环时,它不能正常工作,为什么以及如何解决这个问题?还是有更好的方法来实现这一目标(我在搜索中找不到类似的内容)?