iphone - 如何检查是否有任何应用程序与文件扩展名相关联

标签 iphone ios objective-c ipad uidocumentinteraction

我想在我的 iOS 应用程序中实现“打开方式...”功能。

有什么方法可以检查此设备上是否有任何应用程序与我要共享的文件扩展名相关联?

如果当前设备上没有应用程序可以打开具有此类扩展名的文件,UIDocumentInteractionController 将不会在单击“打开方式...” 按钮后显示,但是在这种情况下我不想显示这个按钮。

因此问题是:如何检查设备上的任何应用是否可以打开具有特定扩展名的文件?


更新:

例如 UIDocumentInteractionControllerNSArray 属性 icons

它包含可以打开带有我的扩展名的文件的所有应用程序的图像。但如果没有应用程序,它会包含空应用程序的图像。

所以我无法使用 docInteractionController.icons.count == 0 来检查它。我正在寻找其他技巧。”

提前致谢。

最佳答案

尽管 UIDocumentInteractionController 没有提供一种方法来提前发现是否有任何应用程序可以处理文档,-presentOpenInMenuFromRect: < strong>将返回一个标志,指示是否有任何应用程序可以打开文档。这要求您已经设置并提供了 Controller ,这不是最佳选择。

有一个变通方法,有点hacky但很实用:在你调用“真正的”交互 Controller 之前,使用一个虚拟文档创建一个虚拟 Controller ,然后从窗口的边界。这保证它会“出现”在屏幕外,因此您的用户不会看到它。此时,您已从 -present 返回标志,您可以立即关闭虚拟 Controller ,并继续适本地显示您的 UI。

关于iphone - 如何检查是否有任何应用程序与文件扩展名相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408294/

相关文章:

iphone - 在现有应用程序上构建登录

iphone - 我可以从 MPMusicPlayerController 获取 Audio Session /应用音频单元进行播放吗?

iphone - iOS启动画面导致问题

iphone - 有没有办法让 MonoTouch(运行时和关联库)成为标准 iOS 项目/应用程序中的消耗和引用库?

ios - 如何转换Class类型?

ios - NSDateFormatter 不同日期的相同字符串

ios - 如何在 iOS 7 的 UITextField 中添加带缩进的图像 UIImage?

ios - 使用 TableView Controller 在部分中的文章之间导航/滑动

c++ - SCDynamicStoreContext 的函数指针字段有什么用?

ios - 如何通过键号访问 NSDictionary?