测试应用程序是否可以打开特定类型?
问题描述:
在Mac OS X上,如何判断给定应用程序是否打开特定类型?测试应用程序是否可以打开特定类型?
我有两个我感兴趣的UTI:public.text和public.image,我有一个应用程序列表。我想通过这两种类型过滤列表,所以我有一个文本查看器列表和图像查看器列表。
我在SO上看到了一个相关的问题,它可以获得特定文档类型的所有查看者列表。我可以做到这一点,并获得该集合的交集,但我宁愿能够单独询问每个应用程序。
有没有任何可可或碳的要求?
答
如果您需要给定文档类型的应用程序列表,请使用LSCopyAllRoleHandlersForContentType。
如果您需要特定应用程序的文档类型列表,请打开应用程序的Info.plist文件并阅读CFBundleDocumentTypes密钥。
陷阱:CFBundleDocumentTypes字典并不总是具有内容类型的列表。在这种情况下,您需要查看每个字典的其他类型(文件扩展名,OSType等)并查找它们的UTI。 – 2010-01-23 07:35:03