NSFilePresenter -presentedSubitemDidAppearAtURL:方法永远不会被调用

时间:2012-09-12 13:49:31

标签: objective-c cocoa nsfilecoordinator

我有一个符合NSFilePresenter协议的对象,该协议代表我基于文档的应用程序文档包。当在包中创建一个新文件时,要么以编程方式使用NSFileManager和正确的NSFileCoordination方法,要么通过Finder我只获得-presentedSubitemDidChangeAtURL:事件,但在这种情况下-presentedSubitemDidAppearAtURL:看起来并不那么明显。

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

NSFilePresenter对-presentedSubitemDidAppearAtURL:的评论明确指出:

  

通知已添加目录包含的文件或目录。如果未实现此方法但-presentedItemDidChange是,并且该目录实际上是文件包,则文件协调机制将调用-presentedItemDidChange

2 个答案:

答案 0 :(得分:8)

在这个问题上挣扎了很长一段时间后,我向Apple提出了一个技术支持问题。他们的反应是这是一个错误,我们现在唯一可以做的就是通过-presentedSubitemDidChangeAtURL:完成所有事情。

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

答案 1 :(得分:-2)

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

演示者对象 未通知使用低级读写调用直接对文件进行的更改。 通过文件协调器的更改会导致通知