macOS Catalyst `requestSceneSessionActivation` 需要多窗口采用
Posted
技术标签:
【中文标题】macOS Catalyst `requestSceneSessionActivation` 需要多窗口采用【英文标题】:macOS Catalyst `requestSceneSessionActivation` requires multiwindow adoption 【发布时间】: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 应用程序中工作?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于macOS Catalyst `requestSceneSessionActivation` 需要多窗口采用的主要内容,如果未能解决你的问题,请参考以下文章
macOS Catalyst `requestSceneSessionActivation` 需要多窗口采用
macOS Catalyst:如何使用媒体传输协议读取 USB 设备? IOUSBHost API可以吗?
苹果iOS 14代码暗示:macOS Catalyst版Messages应用将至!