我希望共享扩展名仅在共享图像时显示。如果正在共享文本和图像,则还应该显示它。
我有
NSExtensionActivationSupportsText = 1
NSExtensionActivationSupportsImageWithMaxCount = 1
但是,如果只有文本,则共享小部件仍会出现。为了我的扩展程序正常工作,必须共享一个图像。
最佳答案
您可以使用"Declaring Supported Data Types for a Share or Action Extension"下的谓词语句。
有关谓词语法的更多信息,请参见here。
我认为您想使用以下方式:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
OR ( ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text"
AND ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image")
).@count >= 1
).@count == 1
只需将NSExtensionActivationRule添加到您的NSExtensionAttributes字典即可。将类型设置为字符串,并将值设置为上述子查询。
关于ios - iOS 8分享扩展。如何使图像成为必需但文本可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32452417/