SwiftUI:在 iPhone 上显示弹出窗口?

SwiftUI: present popover on iPhone?

我正在查看 Apple Reminders 应用程序,并希望在 iPhone 上构建与视图相同的弹出窗口。这是我指的屏幕:

因此,我可以使用 popover 修饰符在 iPad 上显示类似 UI 的 popover。

struct ContentView: View {
    // 1.
    @State var isPopoverPresented = false
    
    var body: some View {
        // 2.
        Button(action: {
            self.isPopoverPresented = true
        }) {
            Text("Some content")
        }
        // 3.
        .popover(isPresented: $isPopoverPresented) {
            Text("Popover is Presented")
                .font(.largeTitle)
                .frame(width: 200, height: 300)
        }
    }
}

然而,当该代码在 iPhone 上运行时,弹出窗口会变成从底部出现的全屏模式。

我想知道是否有一种本机方法可以构建像提醒应用中所示的屏幕,或者该屏幕是在 iPhone 上具有自定义布局逻辑的自定义视图吗?

您正在寻找 UIKit 中的 Menu (UIMenu)。请注意,它仅限 iOS 14+。