【问题标题】:macOS Catalyst `requestSceneSessionActivation` requires multiwindow adoptionmacOS Catalyst `requestSceneSessionActivation` 需要多窗口采用
【发布时间】:2020-03-29 19:17:51
【问题描述】:

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

enum Activity: String {
  case list
  case settings

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

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

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

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

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

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

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

【问题讨论】:

    标签: swift macos uikit mac-catalyst uiscenedelegate


    【解决方案1】:

    实际工作是将UIApplicationSceneManifest 字典中的UIApplicationSupportsMultipleScenes 键设置为Info.plist 中的YES

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

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

    不幸的是,the raywenderlich.com tutorial 或任何 Apple 的 Catalyst 指南中似乎都没有记录此设置。它似乎只记录在this Developer reference page

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多