SearchBar.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // LoopFollow
  2. // SearchBar.swift
  3. // Created by Jonas Björkert on 2025-01-13.
  4. import SwiftUI
  5. import UIKit
  6. struct SearchBar: UIViewRepresentable {
  7. @Binding var text: String
  8. class Coordinator: NSObject, UISearchBarDelegate {
  9. @Binding var text: String
  10. init(text: Binding<String>) {
  11. _text = text
  12. }
  13. func searchBar(_: UISearchBar, textDidChange searchText: String) {
  14. text = searchText
  15. }
  16. func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
  17. searchBar.resignFirstResponder()
  18. }
  19. }
  20. func makeCoordinator() -> Coordinator {
  21. return Coordinator(text: $text)
  22. }
  23. func makeUIView(context: UIViewRepresentableContext<SearchBar>) -> UISearchBar {
  24. let searchBar = UISearchBar(frame: .zero)
  25. searchBar.placeholder = "Search Log"
  26. searchBar.delegate = context.coordinator
  27. searchBar.autocapitalizationType = .none
  28. searchBar.searchBarStyle = .minimal
  29. return searchBar
  30. }
  31. func updateUIView(_ uiView: UISearchBar, context _: UIViewRepresentableContext<SearchBar>) {
  32. uiView.text = text
  33. }
  34. }