如何检测 SwiftUI 中的 TextField 何时变为活动状态?

cbu*_*sch 2 ios swiftui

.onTapGesture {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

不起作用,因为可以在不启动编辑模式的情况下点击文本字段。

cbu*_*sch 7

答案是使用 onEditingChanged 参数初始化 TextField。

然后,我们可以根据文本字段是否已编辑或更改是否已提交有条件地执行关闭:

TextField("", text: $email, onEditingChanged: { changed in
  if changed {
    // User began editing the text field
  }
  else {
    // User tapped the return key
  }
})
Run Code Online (Sandbox Code Playgroud)