Подробное обсуждение вопроса об отставке клавиатуры с различными ответами можно найти для этого вопроса .
Одним из решений переназначения клавиатуры при помощи жеста перетаскивания в списке является использование метода в окне приложения UIA, как показано ниже. Для упрощения обработки я создал расширение для UIApplication и модификатор представления для этого расширения и, наконец, расширение для View:
extension UIApplication {
func endEditing(_ force: Bool) {
self.windows
.filter{$0.isKeyWindow}
.first?
.endEditing(force)
}
}
struct ResignKeyboardOnDragGesture: ViewModifier {
var gesture = DragGesture().onChanged{_ in
UIApplication.shared.endEditing(true)
}
func body(content: Content) -> some View {
content.gesture(gesture)
}
}
extension View {
func resignKeyboardOnDragGesture() -> some View {
return modifier(ResignKeyboardOnDragGesture())
}
}
Так что последний модификатор для отставки клавиатуры - это всего лишь один модификатор, который должен быть помещен вВот такой список:
List {
ForEach(...) {
//...
}
}
.resignKeyboardOnDragGesture()
Я также реализовал чистую версию панели поиска swiftUI, которая может быть вам интересна. Вы можете найти его в этом ответе .