2011-03-23 26 views
1

我有一个Xcode 4的其他问题。我真的很喜欢新的IDE,但有一些事情我还没有去工作。一件事是用Xcode 4注册文档类型。 我用旧的方式通过plist文件尝试过,但没有奏效。 (意思是我无法用我的应用程序打开一个文件)但我现在没有如何设置它与Xcode 4的接口。Xcode 4文档类型和导出的UTI

我最新的尝试看起来像这样:(复制从Xcode制作的条目Info.plist中)

<key>UTExportedTypeDeclarations</key> 
<array> 
    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.plain-text</string> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>Configuration File</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.myname.projec.iws</string> 
    </dict> 
</array> 

和:

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeIconFiles</key> 
     <array> 
      <string>AnIcon-320</string> 
     </array> 
     <key>CFBundleTypeName</key> 
     <string>Config File</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.myname.projec.iws</string> 
     </array> 
    </dict> 
</array> 

这是行不通的。 Mail中的文件没有使用我的应用程序打开的选项。

有没有人有一个工作的例子与Xcode 4或教程如何做到这一点。我没有任何进一步的想法如何让它工作。

Sandro

+1

单击左树中的TARGET,然后单击INFO。您应该能够通过Xcode编辑条目,而不是手动调整plist。它减轻了你直接编辑plist的需要(如文本或XML)。 – jww 2011-04-02 09:10:42

回答

4

我认为这个角色和文件扩展名缺失。

如果要指定文件扩展名,你需要添加UTTypeTagSpecification

<key>UTExportedTypeDeclarations</key> 

<array> 

    <dict> 
     <key>UTTypeConformsTo</key> 
     <array> 
      <string>public.text</string> 
     </array> 
     <key>UTTypeDescription</key> 
     <string>my document type</string> 
     <key>UTTypeIdentifier</key> 
     <string>com.mycompany.myfiletypename</string> 
     <key>UTTypeTagSpecification</key> 
     <dict> 
      <key>public.filename-extension</key> 
      <array> 
       <string>iws</string> 
      </array> 
     </dict> 
    </dict> 

的角色,你需要添加CFBundleTypeRole

<key>CFBundleDocumentTypes</key> 
<array> 
    <dict> 
     <key>CFBundleTypeName</key> 
     <string>My file</string> 
     <key>CFBundleTypeIconFiles</key> 
     <array> 
      <string>document-320.png</string> 
      <string>document-64.png</string> 
     </array> 
     <key>LSHandlerRank</key> 
     <string>Alternate</string> 
     <key>CFBundleTypeRole</key> 
     <string>Viewer</string> 
     <key>LSItemContentTypes</key> 
     <array> 
      <string>com.mycompany.myfiletypename</string> 

     </array> 
    </dict> 
</array> 
+0

比你的答案。它适用于你的描述。但是你是否也知道,我如何通过Xcode4的新GUI来实现这一点? – 2011-03-23 17:44:51

+0

不,我想在xcode 4中有一个plist编辑器。但是对于这种修改,我更愿意将plist编辑为文本文件。在xcode 3中,您可以右键单击plist文件并选择将其编辑为文本文件(或者可能是源文件)。如果您的意思是UTI的特定编辑,我不知道它是否存在,是否存在或将会存在。但我会很少使用它,以至于我无论如何都会忘记它。也许我已经做了:) – FKDev 2011-03-24 09:29:45

+2

是的确有一个plist编辑器。我用它做了它,它工作。但在Xcode4中有一个图形界面。这就是我问的原因。 ;-) 谢谢您的回复。 :-D – 2011-03-25 16:19:33

1

您可以编辑通过设置“文档类型”=>“项目0”=>“文档操作系统类型”=>“项目0”,相当于“com.mycompany.myfiletypename”。

默认值是“????”您可以更改为“com.mycompany.myfiletypename”。

我觉得其他的性能不言而喻。

1

我只是看着我的旧.plist文件,并将键和值剪切并粘贴到从Xcode3版本导入的Xcode 4项目中的新项目中。当它出现时,它显然“丢失”了.plist中的一些信息。但是,当我用从Xcode3制作的.plist中粘贴丢失的键/值时,新值运行并且它们出现在GUI中,因此您现在可以“浏览”GUI并查看所到之处。一种逆向工程的GUI,但它的作品。