Skip to content

Instantly share code, notes, and snippets.

@graylikeme
Last active July 22, 2021 07:58
Show Gist options
  • Save graylikeme/54b9c4e1bdf0bebe1763c04ce415e894 to your computer and use it in GitHub Desktop.
Save graylikeme/54b9c4e1bdf0bebe1763c04ce415e894 to your computer and use it in GitHub Desktop.
struct ResetPasswordView: View {
enum ResponderFields: Int {
case password
case confirmPassword
}
@State private var firstResponder: ResponderFields? = nil
@State private var text: String = ""
var body: some View {
VStack {
NVTextField(text: $text, id: ResponderFields.password, firstResponder: $firstResponder, onReturn: { firstResponder = .confirmPassword })
.onChange(of: firstResponder, perform: { selected in
if selected == id {
// Field got focused - onFocus()
} else if case .active(_) = fieldState {
// Field got unfocused - onBlur()
}
})
NVTextField(text: $text, id: ResponderFields.confirmPassword, firstResponder: $firstResponder, onReturn: { UIApplication.shared.endEditing() })
.onChange(of: firstResponder, perform: { selected in
if selected == id {
// Field got focused - onFocus()
} else if case .active(_) = fieldState {
// Field got unfocused - onBlur()
}
})
}
}
}
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment