ios - 如何将目标内容标识符附加到 Info.plist 中的快捷方式项?

标签 ios ios13

如果您的应用程序支持场景,那么当用户在 Springboard 中长按您的应用程序图标并点击您的快捷菜单项之一时,将在您的场景委托(delegate)中调用此方法:

  • windowScene(_:performActionFor:completionHandler:)

  • 但是如果您的应用程序也支持多个窗口,运行时需要一种方法来知道要调用哪个窗口场景的委托(delegate)。

    要回答这个问题,您的 UIScene 的 activationConditions需要设置为 UISceneActivationConditions 对象,其 canActivateForTargetContentIdentifierPredicateprefersToActivateForTargetContentIdentifierPredicate适本地指定谓词。targetContentIdentifier有问题的是 UIApplicationShortcutItem 的属性;只是一个字符串,如"myShortcutIdentifier" .

    谓词的 self是传入的targetContentIdentifier字符串,所以谓词将是这样的:
    let pred = NSPredicate(format: "self == 'myShortcutIdentifier'")
    

    到目前为止一切顺利(如 https://developer.apple.com/videos/play/wwdc2019/259/ 中所述)。但是如何将目标内容标识符附加到 Info.plist 中定义的静态 UIApplicationShortcutItem?

    最佳答案

    您可以设置UIApplicationShortcut​ItemTargetContentIdentifier根据 source 在 Info.plist 中.

    然后您可以设置 canprefers UISceneActivationConditions 上的案例.这会触发 -[UIWindowSceneDelegate windowScene:performAction​ForShortcutItem:completionHandler:] UIWindowSceneDelegate上的方法.

    关于ios - 如何将目标内容标识符附加到 Info.plist 中的快捷方式项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58251181/

    相关文章:

    uitableview - 具有多种单元格类型的 DiffableDataSource

    javascript - Firebase 时间戳值和查询 | JavaScript

    ios - MapKit 叠加层以将平面图添加到 map

    ios - 辅助功能检查器不适用于 MacOS Catalina 和 Mojave 上的 Xcode 11.x、iOS 13.x

    iOS 13 UITableViewCell自定义accessoryView出界

    ios - 如何在 iOS 13 中支持低数据模式?

    ios - SKLabelNode 文本消失使用 iOS 7.1

    ios - colorWithPatternImage 在 io6 中不起作用?

    android - 带有 Android、iOS 和 WPF 客户端的 WCF Restful 服务

    iOS 13 - UIBarButtonItem 尺寸太小