Я использую 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];
}
@ m1sh0 Спасибо, но ни один из них не работает :(
Вы пробовали с этими когда-то "com.apple.iwork.pages.pages", "com.apple.iwork.numbers.numbers", "com.apple.iwork.keynote.key" ???
@ m1sh0 Да, задал вопрос после того, как попробовал.
@ m1sh0 Мне пришлось очистить сборку после указания этих UTI. Спасибо за ваше время.
На самом деле существует 2 разных типа файлов Pages, это может быть пакет или один файл, и я думаю, что вы хотите, чтобы ваше приложение обрабатывало оба.
Соответствующие ИМП — com.apple.iwork.pages.sffpages
и com.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, если у вас все еще есть проблемы с UIDocumentPickerViewController
: https://developer.apple.com/videos/play/wwdc2018/216
com.apple.iwork.pages.sffpages сделал свое дело, но теперь доступ есть только у на моем устройстве страниц. Когда тот же файл страниц скопирован в айклауд диск, он недоступен.
Однако числа и файл с ключевыми заметками на диске icloud доступны, а страницы — нет.
Пожалуйста, посмотрите на мое обновление в вопросе. @Поток
@iAkki Я обновил свой ответ примером кода, не могли бы вы попробовать?
Фиксированный! Я не знаю, почему мне всегда требуется очищать проект после изменения типов. Я забыл очистить в прошлый раз, когда указал UTI как .sffpages, так и .pages. Теперь он работает. Большое спасибо за вашу помощь :) @TheFlow
Насколько я понимаю, нужны все составные форматы контента, а это все kUTTypePDF, kUTTypeRTFD, kUTTypeFlatRTFD, kUTTypeTXNTextAndMultimediaData, kUTTypeWebArchive.