我正在编写一个程序来加载和处理 XML 数据。如果 XML 文件包含单个 XML“字典”,那么它需要打开一个 NSDocument 窗口(到目前为止,一切都很好 - 我可以做到这一点!),但如果 XML 文件包含一个字典数组,那么它应该打开一个列表窗口,从中可以将各个字典打开到 NSDocument 中。
因为File->Open在文档窗口打开之前向First Responder->openDocument发送了一个动作,所以我认为 openDocument 函数不是 NSDocument 的一部分。因此,我希望能够在 open 函数移交给 NSDocument 之前拦截它 - 只是为了检查该文档是否是我想要作为文档而不是作为我的整洁列表视图打开的文档。
另一方面,如果 openDocument 是一个 NSDocument 函数,我怎样才能安静地关闭 NSDocument 窗口并将 XML 列表交给我的列表窗口,而不会在这种情况下引发错误?当然,我不想完全抑制错误——因为可能有正当的理由引发错误(不可读的文件、错误的语法等)
我意识到我正在尝试做的事情有点不正统 - 但希望它是可能的。有任何想法吗?