如何在UIDocumentPickerViewController中启用编辑按钮及管控云盘
嘿,我来帮你搞定这两个iOS开发里的问题:
1. 启用右上角的Edit按钮管控云盘
你遇到的Edit按钮不显示的问题,核心原因是你用了UIDocumentPickerModeImport模式——这个模式的设计目标是将文件导入到你的App沙盒,默认不会显示用于管控云盘的Edit按钮。要显示这个按钮,你需要切换到UIDocumentPickerModeOpen或者UIDocumentPickerModeOpenMultiple模式,这两个模式是用来直接访问云盘内的文件,会自动带出Edit按钮。
修改后的代码如下:
// 先定义文件类型,后面问题2会补充具体内容 NSArray *types = @[]; // 切换到Open模式,会自动显示Edit按钮 UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:types inMode:UIDocumentPickerModeOpen]; documentPicker.delegate = self; // 如果需要允许多选,可以换成UIDocumentPickerModeOpenMultiple模式 // documentPicker.allowsMultipleSelection = YES; [self presentViewController:documentPicker animated:YES completion:nil];
补充说明:Edit按钮的显示还依赖于设备上已经安装了第三方云盘App(比如Dropbox、Google Drive),如果没有安装对应的App,Edit按钮里不会显示对应的管控选项哦。
2. 仅访问Excel及Google Sheets文件
要过滤出这两类文件,你需要设置正确的**统一类型标识符(UTI)**到documentTypes数组里。以下是对应文件类型的UTI:
- Excel文件:覆盖.xls和.xlsx格式,对应的UTI是
com.microsoft.excel.xls、com.microsoft.excel.xlsx、org.openxmlformats.spreadsheetml.sheet(通用的Open XML表格格式) - Google Sheets:对应的UTI是
com.google.sheets,另外Google Sheets也支持导出为xlsx格式,所以包含上面的Excel UTI也能覆盖它的导出文件
最终的types数组可以这样定义:
NSArray *types = @[ @"com.microsoft.excel.xls", @"com.microsoft.excel.xlsx", @"org.openxmlformats.spreadsheetml.sheet", @"com.google.sheets" ];
把这个数组传入初始化方法,文档选择器就只会显示符合这些类型的文件了。
内容的提问来源于stack exchange,提问作者user9799909
相关产品推荐
相关产品推荐

