UIDocumentPickerViewController - 每次拾取的文件都会变灰

时间:2015-04-03 07:10:03

标签: ios ios8 icloud-drive uidocumentpickervc

我在iOS 8上使用UIDocumentPickerViewController来允许用户在iCloud Drive中打开文档。

我将UIDocumentPickerModeOpen与我应用文档的自定义UTI一起使用:

UIDocumentPickerViewController *pickerViewController = [[UIDocumentPickerViewController alloc]
  initWithDocumentTypes:@[[MySampleDocument documentUTI]] 
  inMode:UIDocumentPickerModeOpen];

pickerViewController.delegate = self;

[self presentViewController:pickerViewController animated:YES completion:^{

}];

一开始工作正常。我的应用程序的文档显示,用户可以选择一个文档,并在应用程序中打开它。

但是,如果我再次使用文档选择器,我刚刚选择的同一文档现在变灰,无法再次选取。

为什么?

即使退出应用后,文档仍然显示为灰色。我甚至删除了应用程序并再次安装它。该文件仍然是灰色的。

我正在使用UIDocument,因此启动和停止安全范围访问需要处理。

1 个答案:

答案 0 :(得分:1)

我终于弄明白了。我的Info.plist中的文档UTI必须符合public.data。一旦我添加了这个,条目就不再灰显了。

另一个积极的副作用是NSMetadtaQuery结果的kMDItemContentType现在最终显示正确的UTI,而不再是dyn.abc1234...

以下是更新后的工作类型定义:

<key>UTTypeConformsTo</key>
<array>
    <string>public.composite-content</string>
    <string>public.data</string>      ← This part was missing before.
</array>
相关问题