我的NSDocument子类需要接受任何类型的文件

时间:2012-01-14 11:24:48

标签: macos nsdocument uti

我正在构建一个查看器应用程序,它需要接受“任何”类型的文件作为要查看的选定文件。实际上它甚至应该接受文件夹,因为在这种情况下我想显示与文件夹相关的信息,例如文件数等。 现在假设我决定使用基于NSDocument的应用程序架构来执行此操作。如何让我的应用程序接受任何类型的文件(而不是获取这些[NSDocumentController reopenDocumentForURL:withContentsOfURL:display:completionHandler:]失败的消息?

1 个答案:

答案 0 :(得分:1)

基于讨论: iOS Document/File type associations - wildcard UTI?我设法让它运转起来(似乎):

  1. 进入XCode(我使用4.1)到“Project Navigator”并选择目标应用程序。
  2. 选择“信息”标签
  3. 转到列表中的“文档类型”元素。如果您使用默认项目创建,则会填写您的自定义文档类型。
  4. 现在将Name属性更改为public.item
  5. 现在应用程序将能够打开任何类型的文件作为其文档。 要记住的一件事是保持以下(在项目创建期间自动生成)方法。我删除了它们,假设我不需要它们,这又造成了另一个错误:

    1. - (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
    2. - (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
    3. 并且能够将文件夹作为文档,添加:

      • - (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError

      现在似乎有效,欢迎任何其他评论。