Files
damus/damus/Util/InputDismissKeyboard.swift
William Casarin a1e620f721 refactor: generalize end_editing
might be useful... we shall see

Signed-off-by: William Casarin <jb55@jb55.com>
2022-07-02 12:30:58 -07:00

41 lines
838 B
Swift

//
// InputDismissKeyboard.swift
// damus
//
// Created by William Casarin on 2022-07-02.
//
import Foundation
import SwiftUI
public extension View {
func dismissKeyboardOnTap() -> some View {
modifier(DismissKeyboardOnTap())
}
}
public struct DismissKeyboardOnTap: ViewModifier {
public func body(content: Content) -> some View {
#if os(macOS)
return content
#else
return content.gesture(tapGesture)
#endif
}
private var tapGesture: some Gesture {
TapGesture().onEnded(end_editing)
}
}
func end_editing() {
UIApplication.shared.connectedScenes
.filter {$0.activationState == .foregroundActive}
.map {$0 as? UIWindowScene}
.compactMap({$0})
.first?.windows
.filter {$0.isKeyWindow}
.first?.endEditing(true)
}