This PR contains the work done to improve upon the editing experience on the **Task list item and the **New task** views. Reviewed-on: rock-n-code/todos-app#9 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
44 lines
1.3 KiB
Swift
44 lines
1.3 KiB
Swift
import SwiftUI
|
|
|
|
/// A view modifier that resigns the first responder status when the view is tapped.
|
|
///
|
|
/// This modifier is useful for dismissing the keyboard or other input controls
|
|
/// when the user taps on an area of the view that doesn't have interactive content.
|
|
struct ResignFocusModifier: ViewModifier {
|
|
|
|
// MARK: Body
|
|
|
|
/// The content and behavior of the view modifier.
|
|
///
|
|
/// Adds a tap gesture that sends the `resignFirstResponder` action
|
|
/// to dismiss any active first responder (such as a text field).
|
|
func body(content: Content) -> some View {
|
|
content
|
|
.onTapGesture {
|
|
UIApplication.shared.sendAction(
|
|
#selector(UIResponder.resignFirstResponder),
|
|
to: nil,
|
|
from: nil,
|
|
for: nil
|
|
)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// MARK: - View Extension
|
|
|
|
extension View {
|
|
|
|
/// Adds a tap gesture that resigns the first responder when the view is tapped.
|
|
///
|
|
/// This is useful for dismissing the keyboard or other input controls
|
|
/// when the user taps outside of an interactive element.
|
|
///
|
|
/// - Returns: A view that resigns first responder status on tap.
|
|
func onResignFocus() -> some View {
|
|
modifier(ResignFocusModifier())
|
|
}
|
|
|
|
}
|