1

当试图在 macOS Catalyst 应用程序中打开一个新窗口时,我使用这个枚举来描述一个实例NSUserActivity

enum Activity: String {
  case list
  case settings

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

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

然后打开一个新窗口,我在按钮点击处理程序中使用此代码,如本 raywenderlich.com 教程中所述:

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

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

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

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

4

1 回答 1

0

实际工作是将字典中的UIApplicationSupportsMultipleScenes键设置为您的:UIApplicationSceneManifestYESInfo.plist

    <key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <true/>
    </dict>

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

Xcode 中的 Info.plist 与

不幸的是,这个设置似乎没有记录在raywenderlich.com 教程或任何 Apple 的 Catalyst 指南中。它似乎只记录在此开发人员参考页面上

于 2020-03-29T19:17:51.993 回答