Настройка многоэкранного приложения SwiftUI с использованием сценIOS

Программируем под IOS
Ответить
Anonymous
 Настройка многоэкранного приложения SwiftUI с использованием сцен

Сообщение Anonymous »

Я пытаюсь настроить приложение SwiftUI, которое отображает разные пользовательские интерфейсы в приложении устройства и на внешнем неинтерактивном дисплее (как это делает Keynote при презентации).
Что у меня есть:
  • структура приложения с помощью @UIApplicationDelegateAdaptor(AppDelegate.self)
  • Код: Выделить всё

    InternalDisplayView
    и Внешнийдисплейвиев. Если возможно, я бы хотел, чтобы последний отображался только на внешнем дисплее (а не, например, в другом окне iPad).
  • Я заметил, что наблюдение за UIScreen.didConnectNotification работает, но оно устарело и, я полагаю, будет удалено, начиная с Xcode 16, поэтому я хочу использовать UIAppDelegate и UIWindowSceneDelegate.
Я пробовал как настроить info.plist с двумя разными типами сцен, так и не настраивать ни одного, установите для параметра «Включить несколько окон» значение «ДА» и «НЕТ».
В AppDelegate у меня есть:

Код: Выделить всё

    func application(
_ application: UIApplication,
configurationForConnecting connectingSceneSession: UISceneSession,
options: UIScene.ConnectionOptions
) -> UISceneConfiguration {
let config: UISceneConfiguration = if connectingSceneSession.configuration.role == .windowExternalDisplayNonInteractive {
.init(name: "External",
sessionRole: .windowExternalDisplayNonInteractive)
} else {
.init(name: "Default",
sessionRole: connectingSceneSession.role)
}
config.delegateClass = SceneDelegate.self // my custom SceneDelegate
return config
}
Но при подключении внешнего дисплея роль .windowExternalDisplayNonInteractive не задается. Фактически, эта функция AppDelegate вообще не вызывается при подключении дисплея.
Что я делаю неправильно в этой настройке?

Подробнее здесь: https://stackoverflow.com/questions/781 ... ing-scenes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»