要扩展的应用程序';其他';从表单(SwiftUI)中选择选择器时的类别

要扩展的应用程序';其他';从表单(SwiftUI)中选择选择器时的类别,swift,forms,swiftui,picker,Swift,Forms,Swiftui,Picker,我想向用户提供一个类别列表(通过表单中包含的选择器),最后列出的类别是“其他”。如果用户选择“其他”,则应用程序将在表单中添加一个字段,供用户输入新类别名称(该名称将保存以供将来参考) 我已经能够提供选择器列表: Section { Picker(selection: $courseIndex, label: Text("Course")) { ForEach(0 ..< courses.count) { Text(sel

我想向用户提供一个类别列表(通过表单中包含的选择器),最后列出的类别是“其他”。如果用户选择“其他”,则应用程序将在表单中添加一个字段,供用户输入新类别名称(该名称将保存以供将来参考)

我已经能够提供选择器列表:

Section {
    Picker(selection: $courseIndex, label: Text("Course")) {
        ForEach(0 ..< courses.count) {
            Text(self.courses[$0]).tag($0)
        } //ForEach
    } // Picker                    
} // Section - Course
部分{
选择器(选择:$courseIndex,标签:文本(“课程”)){
ForEach(0..<课程数){
文本(self.courses[$0]).tag($0)
}//ForEach
}//选择器
}//部分-课程
但我无法确定如何显示新字段,以便用户输入新类别


谢谢。

您可以在BodyBuilder中添加use
if
,例如:

struct ContentView:View{
@状态变量courseIndex:Int=2
让课程=[“课程1”、“课程2”、“其他”]
var body:一些观点{
VStack{
部分{
选择器(选择:$courseIndex,标签:文本(“课程”)){
ForEach(0..<课程数){
文本(self.courses[$0]).tag($0)
}
}
}
如果courseIndex==2{
文本(“显示额外内容”)
}
}
}
}
您可以使用
.onChange(of:VAR)
如果选择了other,则为新节启用一个标志,但可能有更好的方法