Build a popover with form and it has one Picker and TextEditor.when keyboard appears for TextEditor picker values disappears
main View
struct FirstView: View {
@State var isShowPopover:Bool = false
var body: some View {
Button {
self.isShowPopover = true
} label: {
Text("Click Me")
}
.popover(isPresented: $isShowPopover) {
ContentView()
}
}
}
struct FirstView_Previews: PreviewProvider {
static var previews: some View {
FirstView()
}
}
Popover
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()
var body: some View {
NavigationView {
Form{
Section{
Picker(selection: $viewModel.selectedHeaderId,
label: Text("Types").font(.system(size: 14, weight: .regular)),
content: {
ForEach(viewModel.headerList, id: \.id){ item in
Text(item.label)
.tag(item.id)
}
})
.listRowInsets(EdgeInsets())
}
Section{
HStack(alignment: .top){
Text("Description")
.font(.system(size: 16,weight: .regular))
Spacer()
TextEditor(text: $viewModel.description)
.multilineTextAlignment(.trailing)
.frame(minHeight: 50)
}
.padding(.top,12)
.listRowInsets(EdgeInsets())
}
}
.frame(height: 300)
.background(Color(UIColor.systemBackground))
.navigationBarTitle(Text("Bug"), displayMode: .inline)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
View Model
class ViewModel: ObservableObject {
@Published var description:String = ""
@Published var selectedHeaderId:Int = 0
@Published var headerList:[Header] = [Header(id: 1, label: "item 1"),Header(id: 2, label: "item 2")]
}
struct Header{
let id:Int
let label:String
}
Environment Xcode 13.2.1 Tested on iOS 14.5 & 15.2
