Scenario:
- RootScreen presents DateScreen modally though .sheet
- DateScreen has a DatePicker with CompactDatePickerStyle() and a button to dismiss the modal
- User opens the DatePicker
- User taps the DatePicker to bring up the NumPad for manual keyboard input
- User presses the button to dismiss the modal
SwiftUI will think the .sheet got dismissed, but in reality, only the DatePicker's modal got dismissed.
Minimum code example:
struct DateScreen: View {
    @Binding var isPresented: Bool
    @State var date: Date = Date()
    var body: some View {
        NavigationView {
            VStack {
                DatePicker("", selection: $date, displayedComponents: [.hourAndMinute])
                    .datePickerStyle(CompactDatePickerStyle())
            }
            .navigationBarItems(leading: Button("Dismiss") {
                isPresented = false
            })
        }
    }
}
@main
struct Main: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    @State var isPresenting: Bool = false
    var body: some Scene {
        WindowGroup {
            Button("Present modal", action: {
                isPresenting = true
            })
                .sheet(isPresented: $isPresenting, content: {
                    DateScreen(isPresented: $isPresenting)
                })
        }
    }
}
Gif showing the broken behavior:
Note, if the user doesn't open the NumPad, it seems to work well.

 
     
    
