当选择多个相同类型时,操作扩展激活规则谓词不会隐藏操作

时间:2015-12-31 17:06:59

标签: ios nspredicate ios-extensions

您好我正在尝试将操作扩展程序仅用于单个GIF文件。这是我的代码(使用Apple文档中提供的代码段创建:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.compuserve.gif"
    ).@count == $extensionItem.attachments.@count
).@count == 1

这个扩展应该在Photos应用程序内部工作,我尝试了多种方案:单个GIF文件,单个非GIF文件,多个非GIF文件,GIF和非GIF文件的混合,以及多个GIF文件。< / p>

除多个GIF文件外,上述所有方案均有效 - 如果我选择多个项目,则会再次显示该操作。

我希望仅在使用单个GIF时才会显示该操作。上面的谓词我做错了什么?

1 个答案:

答案 0 :(得分:1)

从调试代码开始,它似乎是一个包含大量附件的扩展项。因此,要仅支持单个附件,您需要执行以下操作:

用$替换$ extensionItem.attachments。@ count。

如果您选择的文件超过1个,则应隐藏您的扩展程序。