firstResponder数组循环快速

时间:2020-10-13 15:17:52

标签: arrays swift foreach swiftui first-responder

试图压缩一些代码,这些代码几乎是一堆复制和粘贴。它是一个数字框,每个框只有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次,那么上面的段就可以正常工作,但是当我使用循环时,它不能正常工作,为什么以及如何解决这个问题?还是有更好的方法来实现这一目标(我在搜索中找不到类似的内容)?

0 个答案:

没有答案