4

我正在使用 UIDocumentPickerViewController 来挑选文档。以下是指定的尿路感染:

NSArray *types = @[(NSString*)kUTTypeImage,(NSString*)kUTTypeSpreadsheet,(NSString*)kUTTypePresentation,(NSString*)kUTTypePDF,(NSString*)kUTTypeRTF,(NSString*)kUTTypePlainText,(NSString*)kUTTypeText];

UIDocumentPickerViewController *dpvc = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:types inMode:UIDocumentPickerModeImport];

从页面应用程序(页面文件)创建的文件显示为灰色,无法选择。但是 WhatsApp 文档选择器允许选择相同的文件。我错过了任何必需的 UTI 吗?

我的应用程序:

在此处输入图像描述

WhatsApp:

在此处输入图像描述

更新

com.apple.iwork.pages.sffpages 对我设备上的页面文件有效,但对 icloud 驱动器上的文件无效。呈现文档选择器的完整代码是:

-(IBAction)showDocumentPicker:(id)sender
{
    NSArray *types = @[(NSString*)kUTTypeImage,(NSString*)kUTTypeSpreadsheet,(NSString*)kUTTypePresentation,(NSString*)kUTTypePDF,(NSString*)kUTTypeRTF,(NSString*)kUTTypePlainText,(NSString*)kUTTypeText, @"com.apple.iwork.pages.sffpages"];

    UIDocumentPickerViewController *dpvc = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:types inMode:UIDocumentPickerModeImport];

    dpvc.delegate = self;

    //colorFromHex 4285f4
    [[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:66.0/255.0 green:133.0/255.0 blue:244.0/255.0 alpha:1.0]];

    [self presentViewController:dpvc animated:YES completion:nil];
}
4

1 回答 1

5

实际上,Pages 文件有 2 种不同类型,可以是捆绑文件或单个文件,我认为您希望您的应用程序同时处理这两种文件。

对应的 UTI 是com.apple.iwork.pages.sffpagescom.apple.iwork.pages.pages

导入 iWork 文件的代码示例:

NSArray *types = @[@"com.apple.iwork.pages.sffpages", @"com.apple.iwork.pages.pages", @"com.apple.iwork.numbers.numbers", @"com.apple.iwork.keynote.key"];

UIDocumentPickerViewController *dpvc = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:types inMode:UIDocumentPickerModeImport];

如果您仍然遇到问题,我还建议您观看此 WWDC 会议UIDocumentPickerViewControllerhttps ://developer.apple.com/videos/play/wwdc2018/216

于 2019-06-03T14:52:47.823 回答