From e7710e99288e0f237645d8663c5cb6a161fb7bf8 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 3 Sep 2025 04:05:34 +0900 Subject: [PATCH] fix: improve text field UX in `RuleView` --- DNSecure/Views/DNSSearchDomainMatchView.swift | 4 ++++ DNSecure/Views/DNSServerAddressMatchView.swift | 4 ++++ DNSecure/Views/ProbeURLView.swift | 4 ++++ DNSecure/Views/SSIDMatchView.swift | 2 ++ 4 files changed, 14 insertions(+) diff --git a/DNSecure/Views/DNSSearchDomainMatchView.swift b/DNSecure/Views/DNSSearchDomainMatchView.swift index 12318da..739bc8b 100644 --- a/DNSecure/Views/DNSSearchDomainMatchView.swift +++ b/DNSecure/Views/DNSSearchDomainMatchView.swift @@ -18,6 +18,10 @@ extension DNSSearchDomainMatchView: View { set: { self.rule.dnsSearchDomainMatch[i] = $0 } ) ) + .textContentType(.URL) + .keyboardType(.URL) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() } .onDelete { self.rule.dnsSearchDomainMatch.remove(atOffsets: $0) } .onMove { self.rule.dnsSearchDomainMatch.move(fromOffsets: $0, toOffset: $1) } diff --git a/DNSecure/Views/DNSServerAddressMatchView.swift b/DNSecure/Views/DNSServerAddressMatchView.swift index 46d63b3..e63a219 100644 --- a/DNSecure/Views/DNSServerAddressMatchView.swift +++ b/DNSecure/Views/DNSServerAddressMatchView.swift @@ -18,6 +18,10 @@ extension DNSServerAddressMatchView: View { set: { self.rule.dnsServerAddressMatch[i] = $0 } ) ) + .textContentType(.URL) + .keyboardType(.numbersAndPunctuation) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() } .onDelete { self.rule.dnsServerAddressMatch.remove(atOffsets: $0) } .onMove { self.rule.dnsServerAddressMatch.move(fromOffsets: $0, toOffset: $1) } diff --git a/DNSecure/Views/ProbeURLView.swift b/DNSecure/Views/ProbeURLView.swift index 27d63b6..47f4ba3 100644 --- a/DNSecure/Views/ProbeURLView.swift +++ b/DNSecure/Views/ProbeURLView.swift @@ -17,6 +17,10 @@ extension ProbeURLView: View { Form { Section { LazyTextField("Probe URL", text: self.probeURL) + .textContentType(.URL) + .keyboardType(.URL) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() } footer: { Text( "If a request sent to this URL results in a HTTP 200 OK response and all of the other conditions in the rule match, then the rule matches. If you don't want to use this rule, leave it empty." diff --git a/DNSecure/Views/SSIDMatchView.swift b/DNSecure/Views/SSIDMatchView.swift index b4c21cb..6982075 100644 --- a/DNSecure/Views/SSIDMatchView.swift +++ b/DNSecure/Views/SSIDMatchView.swift @@ -18,6 +18,8 @@ extension SSIDMatchView: View { set: { self.rule.ssidMatch[i] = $0 } ) ) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() } .onDelete { self.rule.ssidMatch.remove(atOffsets: $0) } .onMove { self.rule.ssidMatch.move(fromOffsets: $0, toOffset: $1) }