MacOS Catalyst `requestSceneSessionActivation` требует многооконного принятия - PullRequest
0 голосов
/ 29 марта 2020

При попытке открыть новое окно в приложении 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.

Что означает это сообщение об ошибке и что, возможно, здесь не хватает шагов для обеспечения поддержки нескольких windows в приложении Catalyst?

1 Ответ

0 голосов
/ 29 марта 2020

Что на самом деле работало, так это установив ключ UIApplicationSupportsMultipleScenes в словаре UIApplicationSceneManifest на YES в вашем Info.plist:

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

Или, если вы предпочитаете Xcode GUI, посмотрите этот снимок экрана:

Info.plist in Xcode with the

К сожалению, этот параметр не описан в руководстве по raywenderlich.com или в каких-либо руководствах Apple. на катализаторе. Кажется, что это задокументировано только на этой справочной странице разработчика .

...