Swift 4.2 UIDocumentBrowser View Controller Файлы Powerpoint PPTX выделены серым цветом
Я использую шаблон приложения на основе документа в Xcode 10.1 с Swift. Из коробки он не поддерживает много типов файлов, поэтому я добавил несколько типов документов, включая различные форматы Microsoft Office (doc, xls, ppt), которые работают нормально. Я также добавил открытые форматы xml для docx, xlsx и pptx. Они также отлично работают, за исключением pptx, который остается серым при запуске приложения. Я также попытался использовать импортированный раздел UTI безуспешно. Вот выдержка из Info.plist, показывающая записи docx и xlsx (которые работают) и эквивалентную запись pptx, которая не работает.
Эти работы:
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>wordx</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>org.openxmlformats.wordprocessingml.document</string>
</array>
</dict>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>excelx</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>org.openxmlformats.spreadsheetml.sheet</string>
</array>
</dict>
Хотя это не так:
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>powerx</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHanderRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>org.openxmlformats.presentationml.presentation</string>
</array>
</dict>
Я также попытался импортировать UTI безуспешно:
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
<string>public.content</string>
</array>
<key>UTTypeDescription</key>
<string>powerpoint pptx</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>org.openxmlformats.presentationml.presentation</string>
<key>UTTypeTagSpecification</key>
<array>
<string>pptx</string>
<string>application/vnd.openxmlformats-officedocument.presentationml.presentation</string>
</array>
</dict>
</array>
Любая помощь будет оценена, спасибо.
0 ответов
Идентификатор UTI для файлов ppt: com.microsoft.powerpoint.ppt
, согласно документации здесь.
Поэтому вы можете попробовать:
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>powerx</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHanderRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>com.microsoft.powerpoint.ppt</string>
</array>
</dict>