菜鸟教程小白 发表于 2022-12-11 19:57:39

UIDocumentPickerViewController initWithDocumentTypes 中的 iOS 自定义 UTI


                                            <p><p>我正在尝试在我的应用程序中从 iCloud 驱动器打开 .obj 文件,抛出 UIDocumentPickerViewController。我找不到 .obj 文件的标准 UTi。所以,使用这个 <a href="https://developer.apple.com/library/content/qa/qa1587/_index.html" rel="noreferrer noopener nofollow">https://developer.apple.com/library/content/qa/qa1587/_index.html</a>我尝试为我的应用添加对这个文件扩展名的支持。</p>

<p>有 info.plist 部分:</p>

<pre><code>&lt;key&gt;CFBundleDocumentTypes&lt;/key&gt;
&lt;array&gt;
    &lt;dict&gt;
      &lt;key&gt;CFBundleTypeIconFiles&lt;/key&gt;
      &lt;array&gt;
            &lt;string&gt;arrow1&lt;/string&gt;
      &lt;/array&gt;
      &lt;key&gt;CFBundleTypeName&lt;/key&gt;
      &lt;string&gt;OBJ model&lt;/string&gt;
      &lt;key&gt;CFBundleTypeRole&lt;/key&gt;
      &lt;string&gt;Editor&lt;/string&gt;
      &lt;key&gt;LSHandlerRank&lt;/key&gt;
      &lt;string&gt;Owner&lt;/string&gt;
      &lt;key&gt;LSItemContentTypes&lt;/key&gt;
      &lt;array&gt;
            &lt;string&gt;com.giena.Interface.obj&lt;/string&gt;
      &lt;/array&gt;
    &lt;/dict&gt;
&lt;/array&gt;

&lt;key&gt;UTExportedTypeDeclarations&lt;/key&gt;
&lt;array&gt;
    &lt;dict&gt;
      &lt;key&gt;UTTypeConformsTo&lt;/key&gt;
      &lt;array&gt;
            &lt;string&gt;public.data&lt;/string&gt;
      &lt;/array&gt;
      &lt;key&gt;UTTypeDescription&lt;/key&gt;
      &lt;string&gt;OBJ model&lt;/string&gt;
      &lt;key&gt;UTTypeIdentifier&lt;/key&gt;
      &lt;string&gt;com.giena.Interface.obj&lt;/string&gt;
      &lt;key&gt;UTTypeSize320IconFile&lt;/key&gt;
      &lt;string&gt;arrow1&lt;/string&gt;
      &lt;key&gt;UTTypeSize64IconFile&lt;/key&gt;
      &lt;string&gt;arrow1&lt;/string&gt;
      &lt;key&gt;UTTypeTagSpecification&lt;/key&gt;
      &lt;dict&gt;
            &lt;key&gt;public.filename-extension&lt;/key&gt;
            &lt;array&gt;
                &lt;string&gt;obj&lt;/string&gt;
            &lt;/array&gt;
      &lt;/dict&gt;
    &lt;/dict&gt;
&lt;/array&gt;
</code></pre>

<p>还有 UIDocumentPickerViewController 调用:</p>

<pre><code> UIDocumentPickerViewController *documentPicker = [ initWithDocumentTypes:@[@&#34;public.text&#34;]   inMode:UIDocumentPickerModeOpen];
    documentPicker.delegate = self;
    documentPicker.modalPresentationStyle = UIModalPresentationFormSheet;
    ;
</code></pre>

<p>当我运行应用程序时,我看到用于文件选择的弹出 View ,但 .obj 文件是灰色的且不可选择。我做错了什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您应该在文档类型列表中使用您的自定义 UTI:</p>

<pre><code>UIDocumentPickerViewController *documentPicker =[ initWithDocumentTypes:@[@&#34;com.giena.Interface.obj&#34;] inMode:UIDocumentPickerModeOpen];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于UIDocumentPickerViewController initWithDocumentTypes 中的 iOS 自定义 UTI,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44766527/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44766527/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: UIDocumentPickerViewController initWithDocumentTypes 中的 iOS 自定义 UTI