12

我有一个符合 NSFilePresenter 协议的对象,它代表我的基于文档的应用程序文档包。当在包内创建新文件时,以编程方式使用具有适当 NSFileCoordination 方法的 NSFileManager 或通过 Finder 我只得到-presentedSubitemDidChangeAtURL:事件,但在这种情况下似乎并不那么明显-presentedSubitemDidAppearAtURL:

这是预期的行为还是我做错了什么?

-presentedSubitemDidAppearAtURL:NSFilePresenter 中的评论清楚地表明:

通知该目录包含的文件或目录已添加。如果这个方法没有实现但是-presentedItemDidChange已经实现了,并且目录实际上是一个文件包,那么文件协调机制将被调用-presentedItemDidChange

4

2 回答 2

8

在为这个确切的问题挣扎了很长一段时间后,我向 Apple 提出了一个技术支持问题。他们的回答是这是一个错误,我们现在唯一能做的就是通过-presentedSubitemDidChangeAtURL:.

我会鼓励遇到此问题的任何人提交错误 ( https://bugreport.apple.com ),以鼓励 Apple 尽快解决此问题。

于 2013-10-13T09:42:16.880 回答
-2

https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSFilePresenter_protocol/

使用对文件的低级读写调用直接进行的更改不会通知您的演示者对象只有通过文件协调器的更改才会产生通知。

于 2015-10-14T22:30:44.223 回答