- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序可以使用自定义文件(具有自定义扩展名/UTI)存储用户创建的内容,并希望它使用 UIDocumentPicker 支持 iCloud Drive。
1.问题是,一旦文件被导入,它就会变灰,无法导入。尝试了几件事后,我发现问题出在自定义 UTI 上。如果我只是将文件扩展名更改为众所周知的扩展名,例如 pdf,它就可以正常工作。
我还使用下面的示例代码(只选择一个文档,什么都不做)进行测试。如果我选择一个带有自定义扩展名的文件,它会在导入一次后变灰。pdf 文件没问题 - 我可以一次又一次地导入它们。
我错过了什么吗?
2。另一个问题是,如果我将文档类型指定为@"public.composite-content",我可以在根目录中选择一个 pdf 文档,但无法访问包含 pdf 文件的文件夹。如果我使用 kUTTypePDF,我可以两者兼顾。这是预期的行为,还是只是一个错误?
-(void)openDocumentPicker
{
UIDocumentPickerViewController *vc = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.composite-content"] inMode:UIDocumentPickerModeImport];
vc.delegate = self;
vc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:vc animated:YES completion:nil];
}
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {
return;
}
最佳答案
如果您仍然遇到这个问题,或者其他人面临同样的问题,这就是我如何让它工作的:
1) info.plst 中的 UTI 声明:
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Holiday backup file</string>
<key>UTTypeIdentifier</key>
<string>de.myDomain.foobar.alb</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>alb</string>
</array>
<key>public.mime-type</key>
<string>application/alb</string>
</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Holiday backup file</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>de.myDomain.foobar.alb</string>
</array>
</dict>
</array>
UTTypeConformsTo/public.data 是这里的重要部分。
2) UIDocumentPicker
UIDocumentPickerViewController* dvc= [[UIDocumentPickerViewController alloc] initWithDocumentTypes:[NSArray arrayWithObject:@"de.myDomain.foobar.alb"] inMode:UIDocumentPickerModeImport];
因此,在上面的示例中,您使用 @"public.composite-content"
初始化了选择器,同时您应该使用在 info.pls 文件中提供的正确标识符(在我的示例中为“de .myDomain.foobar.alb").
关于ios - 使用自定义 UTI 删除 UIDocumentPicker 导入/导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001870/
在我的应用程序中,我通过 UIDocumentPicker 选择文件并将文件名放在 tableView 上。单击 cell 时,我希望应用程序打开该文件。我不知道如何打开之前选择的文件。请帮忙。 im
我正在尝试在我的应用程序中启动 DocumentPicker。我已经声明: var documentPicker: UIDocumentPickerViewController = UIDocu
所以我正在使用 UIDocumentPicker 在我的应用程序中导入一个文件 let documentMenu = UIDocumentMenuViewController(document
问题: 从 iCloud 选择文档时,应用程序会随机崩溃,在大多数情况下,以下代码可以正常工作,但在极少数情况下会失败。 我在应用程序中启用了 iCloud 授权,但似乎找不到间歇性失败的原因。有没有
我正在使用文档选择器来选择文档并上传到服务器。我只需要为允许的文件传递一些扩展名,但我无法找出什么扩展名代表什么类型的文件。这是我想要允许的扩展列表。 -docx-Microsoft Word - x
我正在尝试从下载一个文件 -documentPicker:didPickDocumentAtURL: 方法。我尝试使用 获取文件的数据 NSData *data = [NSData dataWithC
我注意到我的 UIDocumentPicker 的导航栏仅在 iOS 11 中存在问题,完成、取消或编辑按钮是不可见的,当用户触摸它时它会出现,即正常状态下的颜色是白色,即使更改 UINavigati
我试图从 UIDocumentPickerViewController 获取带有扩展名的选定文件名,但文件名的文件扩展名末尾有“]”。关于什么是正确的方法有什么建议吗? 这是我的代码: func do
在我的 OS X 机器上,我放置了一个文档,它实际上是一个 file package (又名文档包)放入我的保管箱。当我尝试使用 UIDpocumentPicker 插件在我的 iOS 设备上打开该文
我写了一个UIDocumentPicker的程序。 但是,如果我在iOS 11模拟器上点击“浏览”,加载继续显示,无法显示。 需要什么样的回应? 开发环境 Xcode:版本 9.0 beta 5 模拟
根据文档,UIDocumentPickerViewController和 UIDocumentBrowserViewController可用于在应用程序沙箱之外导入文档。 对于从本地文档提供商/云位置
我有一个应用程序可以使用自定义文件(具有自定义扩展名/UTI)存储用户创建的内容,并希望它使用 UIDocumentPicker 支持 iCloud Drive。 1.问题是,一旦文件被导入,它就会变
我真的很困惑如何导入 pdf 文件并将其存储在 TableView 单元格中。我正在使用 UIDocumentPicker 导入 pdf 文件,但我无法弄清楚如何将 pdf 文件数据存储到 Table
我有两个问题,在 google 上搜索了 5 天后仍找不到答案。 在 uidocumentpicker 的帮助下,我曾经访问文件并选择 pdf 文档。在 didpicdocuments 方法的帮助下选
我是一名优秀的程序员,十分优秀!