From 3606dbb6ff69b607b2ae5a35606e5eb33c8f9a3c Mon Sep 17 00:00:00 2001 From: kingbri Date: Sun, 23 Apr 2023 15:57:18 -0400 Subject: [PATCH] Settings: Fix focus for fields Signed-off-by: kingbri --- .../Views/CommonViews/HybridSecureField.swift | 2 +- Ferrite/Views/SettingsView.swift | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Ferrite/Views/CommonViews/HybridSecureField.swift b/Ferrite/Views/CommonViews/HybridSecureField.swift index df0627f..df3fec0 100644 --- a/Ferrite/Views/CommonViews/HybridSecureField.swift +++ b/Ferrite/Views/CommonViews/HybridSecureField.swift @@ -15,7 +15,7 @@ struct HybridSecureField: View { @Binding var text: String @State private var showPassword = false - @FocusState var focusedField: Field? + @FocusState private var focusedField: Field? var body: some View { HStack { diff --git a/Ferrite/Views/SettingsView.swift b/Ferrite/Views/SettingsView.swift index d54438d..8e08cfd 100644 --- a/Ferrite/Views/SettingsView.swift +++ b/Ferrite/Views/SettingsView.swift @@ -34,6 +34,12 @@ struct SettingsView: View { @AppStorage("Debug.ShowErrorToasts") var showErrorToasts = true + private enum Field { + case requestTimeout + } + + @FocusState private var focusedField: Field? + var body: some View { NavView { Form { @@ -90,6 +96,7 @@ struct SettingsView: View { TextField("", value: $requestTimeoutSecs, formatter: NumberFormatter()) .fixedSize() .keyboardType(.numberPad) + .focused($focusedField, equals: Field.requestTimeout) } } } @@ -206,6 +213,15 @@ struct SettingsView: View { .prefersEphemeralWebBrowserSession(true) } .navigationTitle("Settings") + .toolbar { + ToolbarItemGroup(placement: .keyboard) { + Spacer() + + Button("Done") { + focusedField = nil + } + } + } } } }