SwiftUI: how to detect when List is scrolled?

8.1k Views Asked by At

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!

1

There are 1 best solutions below

4
Asperi On BEST ANSWER

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.