2

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

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

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

pickerViewController.delegate = self;

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

}];

起初这很好用。我的应用程序显示的文档,用户可以选择一个文档,然后在应用程序中打开它。

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

这是为什么?

即使在我退出应用程序后,该文档仍然是灰色的。我什至删除了该应用程序并重新安装它。文档仍然是灰色的。

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

4

1 回答 1

1

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

另一个积极的副作用是kMDItemContentTypeNSMetadtaQuery 结果现在终于显示正确的 UTI 而不再显示dyn.abc1234...了。

这是更新的工作类型定义:

<key>UTTypeConformsTo</key>
<array>
    <string>public.composite-content</string>
    <string>public.data</string>      ← This part was missing before.
</array>
于 2015-07-22T06:30:49.327 回答