diff --git a/AutoCat.xcodeproj/project.pbxproj b/AutoCat.xcodeproj/project.pbxproj index 09b90c3..e4dfe68 100644 --- a/AutoCat.xcodeproj/project.pbxproj +++ b/AutoCat.xcodeproj/project.pbxproj @@ -178,6 +178,7 @@ 7AC355592969746600889457 /* UIControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC355582969746600889457 /* UIControl.swift */; }; 7AC3555B296995B200889457 /* UIEdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC3555A296995B200889457 /* UIEdgeInsets.swift */; }; 7AC76D7B270083AE0084DB27 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC76D7A270083AE0084DB27 /* TextView.swift */; }; + 7AC8B2762D6A01C700190706 /* UISearchTextField+Dumb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC8B2752D6A01C700190706 /* UISearchTextField+Dumb.swift */; }; 7ACBB91E2CB9B155005A5168 /* Mockable in Frameworks */ = {isa = PBXBuildFile; productRef = 7ACBB91D2CB9B155005A5168 /* Mockable */; }; 7ACBB9202CB9B16C005A5168 /* Mockable in Frameworks */ = {isa = PBXBuildFile; productRef = 7ACBB91F2CB9B16C005A5168 /* Mockable */; }; 7ADF23062C25B5BF002624FF /* RealmSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 7ADF23052C25B5BF002624FF /* RealmSwift */; }; @@ -459,6 +460,7 @@ 7AC355582969746600889457 /* UIControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIControl.swift; sourceTree = ""; }; 7AC3555A296995B200889457 /* UIEdgeInsets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIEdgeInsets.swift; sourceTree = ""; }; 7AC76D7A270083AE0084DB27 /* TextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextView.swift; sourceTree = ""; }; + 7AC8B2752D6A01C700190706 /* UISearchTextField+Dumb.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UISearchTextField+Dumb.swift"; sourceTree = ""; }; 7ADF6C92250B954900F237B2 /* Navigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Navigation.swift; sourceTree = ""; }; 7ADF6C94250D037700F237B2 /* ShowEventController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShowEventController.swift; sourceTree = ""; }; 7ADF6C96250F41B000F237B2 /* PNKeyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PNKeyboard.swift; sourceTree = ""; }; @@ -1140,6 +1142,7 @@ 7A912F362D381B7400002938 /* LicensePlateView.swift */, 7AB4E42B2D397D8E0006D052 /* VehicleCellView.swift */, 7A5912042D648A6000EC51BA /* AutoCancellable.swift */, + 7AC8B2752D6A01C700190706 /* UISearchTextField+Dumb.swift */, ); path = SwiftUI; sourceTree = ""; @@ -1388,6 +1391,7 @@ 7AFBE8C02C3024E5003C491D /* ACHud.swift in Sources */, 7AABDE26253350C30041AFC6 /* RxSectionedDataSource.swift in Sources */, 7AAAFADA2C4D1AFE0050410D /* Zoomable.swift in Sources */, + 7AC8B2762D6A01C700190706 /* UISearchTextField+Dumb.swift in Sources */, 7A6DD90C24335A6D009DE740 /* FlagLayer.swift in Sources */, 7A2E11292CCE395300E5CA17 /* OptionalDatePicker.swift in Sources */, 7A761C0B267E8FF90005F28F /* Error.swift in Sources */, @@ -1769,7 +1773,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 148; + CURRENT_PROJECT_VERSION = 149; DEVELOPMENT_TEAM = 46DTTB8X4S; INFOPLIST_FILE = AutoCat/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = AutoCat; @@ -1796,7 +1800,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 148; + CURRENT_PROJECT_VERSION = 149; DEVELOPMENT_TEAM = 46DTTB8X4S; INFOPLIST_FILE = AutoCat/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = AutoCat; diff --git a/AutoCat/Screens/HistoryScreen/HistoryScreen.swift b/AutoCat/Screens/HistoryScreen/HistoryScreen.swift index 80838e6..8ea1a78 100644 --- a/AutoCat/Screens/HistoryScreen/HistoryScreen.swift +++ b/AutoCat/Screens/HistoryScreen/HistoryScreen.swift @@ -45,7 +45,6 @@ struct HistoryScreen: View { .searchPresentationToolbarBehavior(.avoidHidingContent) .autocorrectionDisabled() .textInputAutocapitalization(.never) - .keyboardType(.asciiCapable) .toolbar { ToolbarItem(placement: .primaryAction) { Button("", systemImage: "square.and.arrow.up") { diff --git a/AutoCat/Screens/SearchScreen/SearchScreen.swift b/AutoCat/Screens/SearchScreen/SearchScreen.swift index 3bfaff7..a10a329 100644 --- a/AutoCat/Screens/SearchScreen/SearchScreen.swift +++ b/AutoCat/Screens/SearchScreen/SearchScreen.swift @@ -24,6 +24,8 @@ struct SearchScreen: View { .hud($viewModel.hud) .searchable(text: $viewModel.searchText, prompt: "Search plate numbers") .searchPresentationToolbarBehavior(.avoidHidingContent) + .disableAutocorrection(true) + .autocapitalization(.none) .navigationTitle(String.localizedStringWithFormat(NSLocalizedString("vehicles found", comment: ""), viewModel.vehiclesCount)) .onAppear { diff --git a/AutoCat/SwiftUI/UISearchTextField+Dumb.swift b/AutoCat/SwiftUI/UISearchTextField+Dumb.swift new file mode 100644 index 0000000..4ca2b23 --- /dev/null +++ b/AutoCat/SwiftUI/UISearchTextField+Dumb.swift @@ -0,0 +1,24 @@ +// +// UISearchTextField+Dumb.swift +// AutoCat +// +// Created by Selim Mustafaev on 22.02.2025. +// Copyright © 2025 Selim Mustafaev. All rights reserved. +// + +import UIKit + +extension UISearchTextField { + + // crude and dirty, but tolerable for now + open override var frame: CGRect { + didSet { + self.smartQuotesType = .no + self.smartDashesType = .no + self.smartInsertDeleteType = .no + self.autocorrectionType = .no + self.autocapitalizationType = .none + self.spellCheckingType = .no + } + } +}