如何一次为部分中的文本字段实现视图修饰符?
Posted
技术标签:
【中文标题】如何一次为部分中的文本字段实现视图修饰符?【英文标题】:How to implement view modifiers for text fields in a section at once? 【发布时间】:2020-06-18 09:46:05 【问题描述】:我认为必须有一种方法可以为部分中的每个文本字段使用修饰符,而不必为每个文本字段键入它们。可以使用 ForEach 或其他我不知道的东西来实现下面示例的结果吗?
Section()
TextField("", text: $text1).keyboardType(.decimalPad).modifier(ClearButton(text: $text1))
TextField("", text: $text2).keyboardType(.decimalPad).modifier(ClearButton(text: $text2))
TextField("", text: $text3).keyboardType(.decimalPad).modifier(ClearButton(text: $text3))
TextField("", text: $text4).modifier(ClearButton(text: $text4))
【问题讨论】:
【参考方案1】:这是可能的方法。使用 Xcode 11.4 / ios 13.4 测试
struct DemoSectionView: View
@State private var texts = Array(repeating: "", count: 4)
var body: some View
Section()
ForEach(texts.indices, id: \.self) i in
DemoTextField(text: self.$texts[i],
keyboard: i == self.texts.count - 1 ? .default : .decimalPad)
struct DemoTextField: View
@Binding var text: String
var keyboard: UIKeyboardType = .default
var body: some View
TextField("", text: $text)
.keyboardType(keyboard)
.modifier(ClearButton(text: $text))
【讨论】:
以上是关于如何一次为部分中的文本字段实现视图修饰符?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:超过 4 个组合的文本视图不能与视图修饰符一起使用