SwiftUI - 在键盘启动后选择时选择器冻结
SwiftUI - picker is having freezing when selecting after keyboard is up
我有一个选择器:
Section(header: Text("About you")) {
TextField("About you", text: $profileViewModel.bio)
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: \.self) { level in
Text(level).tag(level)
}
}
TextField("Occupation", text: $profileViewModel.occupation)
}
当我单击文本字段时,键盘出现,这很好,但是当我单击选择器时,它会将我带到新屏幕以选择值并 return 到表单。这在我的模拟器上运行良好(iPhone 11 Pro Max):
Version 11.6 (921.9.1)
SimulatorKit 581.9.1
CoreSimulator 704.12.2
但是当我在我的真实设备上测试它时 iPhone X - v13.5.1 当我在文本字段(键盘可见)后单击选择器时应用程序崩溃。我不确定这是一个错误吗?
然后我将 ontapGesture 放在选择器上以隐藏键盘:
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: \.self) { level in
Text(level).tag(level)
}
}.onTapGesture {
self.hideKeyboard()
}
这有时会起作用,但有时仍然会崩溃,即使我将我的设备连接到 Xcode 并尝试获取日志,我也没有收到任何错误,应用程序只是冻结了?
看起来 spring 动画有一个错误,删除 spring 动画后一切正常
我有一个选择器:
Section(header: Text("About you")) {
TextField("About you", text: $profileViewModel.bio)
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: \.self) { level in
Text(level).tag(level)
}
}
TextField("Occupation", text: $profileViewModel.occupation)
}
当我单击文本字段时,键盘出现,这很好,但是当我单击选择器时,它会将我带到新屏幕以选择值并 return 到表单。这在我的模拟器上运行良好(iPhone 11 Pro Max):
Version 11.6 (921.9.1)
SimulatorKit 581.9.1
CoreSimulator 704.12.2
但是当我在我的真实设备上测试它时 iPhone X - v13.5.1 当我在文本字段(键盘可见)后单击选择器时应用程序崩溃。我不确定这是一个错误吗?
然后我将 ontapGesture 放在选择器上以隐藏键盘:
Picker(selection: $profileViewModel.education,
label: Text("Education Level")) {
ForEach(Education.levels, id: \.self) { level in
Text(level).tag(level)
}
}.onTapGesture {
self.hideKeyboard()
}
这有时会起作用,但有时仍然会崩溃,即使我将我的设备连接到 Xcode 并尝试获取日志,我也没有收到任何错误,应用程序只是冻结了?
看起来 spring 动画有一个错误,删除 spring 动画后一切正常