Add tap on search to focus search field on iOS

This commit is contained in:
Arkadiusz Fal
2023-05-26 23:18:55 +02:00
parent 562df2d9ba
commit 48263ae7db
6 changed files with 96 additions and 4 deletions

View File

@@ -0,0 +1,29 @@
import Introspect
import Repeat
import SwiftUI
@available(iOS 15.0, macOS 12, *)
struct FocusableSearchTextField: View {
@ObservedObject private var state = SearchModel.shared
#if os(iOS)
@State private var textField: UITextField?
#elseif os(macOS)
@State private var textField: NSTextField?
#endif
var body: some View {
SearchTextField()
#if os(iOS)
.introspectTextField { field in
textField = field
}
.onChange(of: state.focused) { newValue in
if newValue, let textField, !textField.isFirstResponder {
textField.becomeFirstResponder()
textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)
}
}
#endif
}
}