问题:如果导航视图具有searchable
修饰符,并且当您选择可搜索字段(因此键盘打开)时,如果您通过选择一个项目弹出此视图,则第一个视图将冻结(不响应任何用户输入)。此问题仅发生在可搜索字段中,而不发生在任何其他文本字段中。此外,问题仅存在于iOS 16中,因为iOS 15中没有问题。**
Xcode:14.3
项目目标版本:iOS 15
模拟器和设备版本:iOS 16
再现问题代码:
struct ContentView: View {
private let options: [String] = ["ABC", "DEF", "GHI", "JKL", "MNO"]
@State private var selection: String?
var body: some View {
NavigationView {
NavigationLink {
CustomPicker(selection: $selection, options: options)
} label: {
HStack {
Text("Picked value")
Spacer()
Text(selection ?? "Pick >")
}
.accentColor(.black)
}
.padding()
}
.navigationViewStyle(.stack)
}
}
struct CustomPicker: View {
@Environment(\.dismiss) private var dismiss
@Binding var selection: String?
let options: [String]
var body: some View {
List(options, id: \.self) { option in
Button {
selection = option
dismiss()
} label: {
Text(option)
}
}
.searchable(text: .constant(""))
}
}
我尝试在NavigationLink(isActive: )
中使用isActive关闭视图,但它不起作用。
1条答案
按热度按时间fd3cxomn1#
几个月前我也遇到过同样的问题:Navigation bug when dismissing view while focussing on empty .searchable() modifier
我向苹果公司提交了一份错误报告,但尚未收到他们的任何反馈。
现在,我通过设置我的。searchable()绑定到一个空间““,然后再导航离开,这似乎对我有用。
你可以试试这样的方法:
}