如果您的应用程序支持场景,那么当用户在Springboard长按您的应用程序图标并点击其中一个快捷菜单项时,该方法将在您的场景委托中调用:
windowScene(_:performActionFor:completionHandler:)
但是,如果您的应用程序还支持多窗口,则运行时需要一种方法来知道要调用哪个窗口场景的委托。
为了回答这个问题,您的UIScene的activationConditions
需要已设置为一个UISceneActivationConditions对象,其canActivateForTargetContentIdentifierPredicate
和prefersToActivateForTargetContentIdentifierPredicate
适当地指定谓词。 相关
要查询的targetContentIdentifier
是UIApplicationShortcutItem的一个属性;它只是一个字符串,例如"myShortcutIdentifier"
。
谓词的self
是 传入的targetContentIdentifier
字符串,因此谓词将如下所示:
let pred = NSPredicate(format: "self == 'myShortcutIdentifier'")
就像在https://developer.apple.com/videos/play/wwdc2019/259/中所解释的那样,目前为止还不错。但是如何将目标内容标识符附加到在Info.plist中定义的静态UIApplicationShortcutItem
?