macOS Catalyst `requestSceneSessionActivation` 需要多窗口采用

macOS Catalyst `requestSceneSessionActivation` requires multiwindow adoption

尝试在 macOS Catalyst 应用程序中打开新的 window 时,我使用此枚举来描述 NSUserActivity 的实例:

enum Activity: String {
  case list
  case settings

  var type: String {
    "com.example.app.\(rawValue)"
  }

  var userActivity: NSUserActivity {
    NSUserActivity(activityType: type)
  }
}

然后打开一个新的 window,我在按钮点击处理程序中使用此代码,如 this raywenderlich.com tutorial:

中所述
UIApplication
  .shared
  .requestSceneSessionActivation(
    nil,
    userActivity: Activity.settings.userActivity,
    options: nil,
    errorHandler: nil
  )

但是,这不起作用,我总是在调试器控制台中收到此错误消息:

[Scene] Calling -[UIApplication requestSceneSessionActivation:] requires multiwindow adoption.

此错误消息是什么意思,此处可能缺少哪些步骤以支持 Catalyst 应用程序中的多个 windows 工作?

实际起作用的是将 UIApplicationSceneManifest 字典中的 UIApplicationSupportsMultipleScenes 键设置为 Info.plist:

中的 YES
    <key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <true/>
    </dict>

或者,如果您更喜欢 Xcode GUI,请查看此屏幕截图:

遗憾的是,the raywenderlich.com tutorial or in any of Apple's guides on Catalyst. It only seems to be documented on this Developer reference page 中似乎没有记录此设置。