【问题标题】:My NSDocument subclass needs to accept any kind of file我的 NSDocument 子类需要接受任何类型的文件
【发布时间】:2012-01-14 11:24:47
【问题描述】:

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

【问题讨论】:

    标签: macos nsdocument uti


    【解决方案1】:

    根据讨论: iOS Document/File type associations - wildcard UTI? 我设法让它工作(似乎):

    1. 在 Xcode(我使用 4.1)中进入“Project Navigator”并选择目标应用程序。
    2. 选择“信息”标签
    3. 转到列表中的“文档类型”元素。如果您使用默认项目创建,它将已经填写您的自定义文档类型。
    4. 现在将Name 属性更改为public.item

    现在应用程序将能够打开任何类型的文件作为其文档。 要记住的一件事是保留以下(在项目创建期间自动生成)方法。我删除了它们,假设我不需要它们,这又产生了另一个错误:

    1. - (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
    2. - (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError

    为了能够将文件夹作为您的文档,请添加:

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

    目前看来可行,欢迎补充。

    【讨论】:

      猜你喜欢
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多