SearchBar.swift 1.1 KB

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