【发布时间】:2020-08-26 05:28:04
【问题描述】:
如果所需选项不存在,用户应该能够向选择器添加新值。所以我基本上想用选项在视图中实现一个“添加”按钮。
我让它工作的唯一方法是向每个选项添加 .navigationBarItems 修饰符。但这似乎不仅是一种开销,而且如果列表的开头不包含任何选项,这也是一个问题(那么修饰符不会应用于任何元素,因此按钮不可见)。
我已经尝试了其他一些方法:
- 将修饰符添加到 ForEach 会将所有选项合并到一个按钮中,因此无法再选择单个选项。
- 在 Picker 下方添加 EmptyView 并将修饰符附加到它会导致列表中出现额外的空行。
import SwiftUI
struct ContentView: View {
@State private var selection = 1
let options = [Option(title: "Option 1", id: 1), Option(title: "Option 2", id: 2)]
struct Option {
var title: String
var id: Int
}
var body: some View {
NavigationView {
Form {
Picker("Test", selection: $selection) {
ForEach(options, id:\.id) { option in
Text(option.title).tag(option.id)
.navigationBarItems(trailing: Text("Add"))
}
.navigationBarTitle("Options", displayMode: .inline)
}
.navigationBarTitle("Form")
.navigationBarItems(trailing: EmptyView())
}
}
}
}
【问题讨论】:
标签: swiftui