关于UIApplicationShortcutItem注意

看了很多文章的介绍,最后还是看官方文档最清楚。

1.动态设置和静态设置
  • 动态设置就是在代码中添加或更新shortcutItem.相关的类有
    UIApplicationShortcutItemUIApplicationShortcutIcon

  • 静态设置是指在Info.plist文件中,用键值对的方式添加. 需要自己添加,xcode貌似不会自动提示key. - -|||

<key>UIApplicationShortcutItems</key>
    <array>
        <dict>
            <key>UIApplicationShortcutItemIconFile</key>
            <string>open-favorites</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>Favorites</string>
            <key>UIApplicationShortcutItemType</key>
            <string>com.mycompany.myapp.openfavorites</string>
            <key>UIApplicationShortcutItemUserInfo</key>
            <dict>
                <key>key1</key>
                <string>value1</string>
            </dict>
        </dict>
        <dict>
            <key>UIApplicationShortcutItemIconType</key>
            <string>UIApplicationShortcutIconTypeCompose</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>New Message</string>
            <key>UIApplicationShortcutItemType</key>
            <string>com.mycompany.myapp.newmessage</string>
            <key>UIApplicationShortcutItemUserInfo</key>
            <dict>
                <key>key2</key>
                <string>value2</string>
            </dict>
        </dict>
    </array>
2.区别

静态设置是在应用安装的时候完成加载的,而动态设置需要在运行到对应代码时(runtime) 才加载,所以同时有静态加载的Item和动态加载的Item时,静态加载的Item会排在前面。

3.运用

文档推荐对可以直接使用的一些功能进行静态设置,而对于需要达到一些要求之后才能使用的Item就进行动态加载,并且可能一些静态加载的Item在App使用之后可能出现功能或者显示的变化,可以通过动态加载的方式进行更新。

    UIApplicationShortcutItem *anExistingShortcutItem = [existingShortcutItems objectAtIndex:anIndex];

    NSMutableArray <UIApplicationShortcutItem *> *updatedShortcutItems = [existingShortcutItems mutableCopy];

    UIMutableApplicationShortcutItem *aMutableShortcutItem = [anExistingShortcutItem mutableCopy];

    [aMutableShortcutItem setLocalizedTitle: @"New Title"];

    [updatedShortcutItems replaceObjectAtIndex:anIndex withObject: aMutableShortcutItem];

    [[UIApplication sharedApplication] setShortcutItems: updatedShortcutItems];

4.扩展:UIApplicationShortcutWidget

iOS 10中添加了UIApplicationShortcutWidget这个key,用于在桌面使用3D Touch时显示widget. 这个key只要写在Info.plist中就可以了,它的值就设置为对应的widget的bound id.

参考:Information Property List Key Reference

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,253评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,292评论 4 61
  • 有人说20多岁是一个姑娘最美好的时光,我深以为然。20多岁的姑娘,既有着小女孩的娇憨和天真,又多了几分女人的柔情,...
    九月妖妖阅读 700评论 2 3
  • 跳出日本圈子来看日语 我々日本人は言うまでもなく、日常生活における他愛もない会話から物事を深く思考するに至るまで日...
    禾禾呈呈阅读 260评论 0 0
  • 一直谬解了苏格拉底的话:必须追求好的生活。 怎样才算好的生活?是满满的舶来品,开着劳斯莱斯、法拉利,浑身国际名牌,...
    暗香屋阅读 760评论 4 3