我想这样做:单击除当前"Textfield“和键盘之外的任何元素-失去焦点的逻辑被调用。
struct ContentView: View {
@State private var text: String = ""
var body: some View {
VStack {
Text("Hello, world!")
TextField(
"Title TextField",
text: self.$text,
onEditingChanged: {
print("onEditingChanged: \($0)")
},
onCommit: {
print("onCommit")
}
)
.onSubmit {
print("onSubmit")
}
Button("Print") {
print("text: \(self.text)")
}
}
}
}我想做一个通用的解决方案,而不需要手动隐藏键盘。
我之所以需要这个,是因为TextField在iOS 14和iOS 15中具有不同的逻辑。
iOS 14:键盘关闭后,值发生变化。
iOS 15:从键盘输入时,值会发生变化。
发布于 2021-10-22 22:58:14
我使用这个扩展:
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}然后在我的身体里
.onTapGesture {
UIApplication.shared.endEditing()
}https://stackoverflow.com/questions/69672890
复制相似问题