我正在iOS 8中测试新的UIDocumentPickerViewController
API。我只想在iCloud中打开一个文件,以查看交互的工作方式。
这是我从UIViewController
运行的代码:
- (IBAction)openDocument:(id)sender {
[self showDocumentPickerInMode:UIDocumentPickerModeOpen];
}
- (void)showDocumentPickerInMode:(UIDocumentPickerMode)mode {
UIDocumentPickerViewController *picker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[(NSString *)kUTTypeData] inMode:mode];
picker.delegate = self;
[self presentViewController:picker animated:YES completion:nil];
}
openDocument
绑定(bind)到IB中的按钮。当我点击它时,它会打开iCloud浏览器,但是其中的每个文件夹都是灰色的(我创建了一些测试Keynote,Numbers和Pages文件),因此无法访问这些文件:。
我检查了一些文档,并进行了以下操作(不走运):
public.data
添加了UTI,如下所示:<key>CFBundleDocumentTypes</key>
CFBundleTypeIconFile
icon.png
CFBundleTypeName
我的数据
CFBundleTypeRole
观看者
LSItemContentTypes
公共(public)数据
LSTypeIsPackage
NSDocumentClass
文档
NSPersistentStoreTypeKey
二进位
NSUbiquitousContainerIsDocumentScopePublic
键,其值为YES
。 知道什么是错的或丢失的吗?
最佳答案
iWork文档不符合kUTTypeData
,它们符合kUTTypePackage
。
但是,在iOS 8 beta 3中,我必须使用确切的UTI:
UIDocumentPickerViewController *picker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"] inMode:mode];