diff --git a/CHANGELOG.md b/CHANGELOG.md index eaa142c..da20dc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,9 @@ ## Next - Add SwiftUI extension `View+FrameSize` ([#153](https://github.com/AckeeCZ/ACKategories/pull/153), kudos to @lukashromadnik) +- Add SwiftUI extension `View+endEditingOnTap` ([#152](https://github.com/AckeeCZ/ACKategories/pull/152), kudos to @lukashromadnik) - Add `readSize` and `readFrame` to SwiftUI views ([#150](https://github.com/AckeeCZ/ACKategories/pull/150), kudos to @olejnjak) -- Add `WithLayoutMargins` to SwiftUI extensions ([#150](https://github.com/AckeeCZ/ACKategories/pull/151), kudos to @komkovla) +- Add `WithLayoutMargins` to SwiftUI extensions ([#151](https://github.com/AckeeCZ/ACKategories/pull/151), kudos to @komkovla) ## 6.15.0 diff --git a/Sources/ACKategories/SwiftUIExtensions/View+endEditingOnTap.swift b/Sources/ACKategories/SwiftUIExtensions/View+endEditingOnTap.swift new file mode 100644 index 0000000..b0684d3 --- /dev/null +++ b/Sources/ACKategories/SwiftUIExtensions/View+endEditingOnTap.swift @@ -0,0 +1,22 @@ +#if canImport(UIKit) && !os(watchOS) +import SwiftUI + +@available(iOS 13.0, *) +public extension View { + + @available(iOSApplicationExtension, unavailable) + func endEditingOnTap( + _ action: (() -> Void)? = nil + ) -> some View { + onTapGesture { + UIApplication.shared.sendAction( + #selector(UIResponder.resignFirstResponder), + to: nil, + from: nil, + for: nil + ) + action?() + } + } +} +#endif