'SwiftUI: how to detect when List is scrolled? [closed]

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!



Solution 1:[1]

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.

backup

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1