14

I have a view with a search bar at the top and a SwiftUI List below. I need to detect when the List is scrolled so I can dismiss the search bar keyboard. How would I call some code when the List is scrolled? Thanks!

mahan
  • 12,366
  • 5
  • 48
  • 83
pejalo
  • 923
  • 11
  • 24

1 Answers1

33

I recommend to use simultaneousGesture modifier as in below:

List {
  // ... your list items
}
.simultaneousGesture(DragGesture().onChanged({ _ in
    // if keyboard is opened then hide it
}))

Update: verified with Xcode 13.3 / iOS 15.4 - for the use-case formulated by PO still works fine.

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
Asperi
  • 228,894
  • 20
  • 464
  • 690