Catalyst 中弹出窗口的水平大小 class?

Horizontal size class of popovers in Catalyst?

如果我在 iPad 上将视图控制器显示为弹出窗口(通过将其 modalPresentationStyle 设置为 .popover),它将报告其水平大小 class 为 .compact。但是,如果我 运行 在 Catalyst 应用程序中使用相同的代码,弹出窗口中的视图控制器会报告 class 的水平大小 .regular。紧凑是我所期望的。在我展示它之前在视图控制器的 popoverPresentationController 上设置 overrideTraitCollection 可以使 class 的大小在 iPad 上正常,但它不会使其在 Catalyst 上紧凑。

如何使弹出窗口中的视图控制器在 Catalyst 中正确报告紧凑的水平尺寸 class?

我假设 Catalyst 作者在 Mac 上将默认值设置为 .regular,因为弹出框通常可以大得多。

如果你只想在 Mac 上覆盖它,我会使用 #ifdef,例如:

#if targetEnvironment(macCatalyst)
// set ‘overrideTraitCollection’ so it forces '.compact’ on the popover
#endif

我在 Catalyst 的 WWDC 2021 实验室中问过一位 Apple 工程师,他说这是一个错误。我已将其提交为反馈 FB9124431。