Cocoa 检查是否在基于文档的应用程序中成功保存

Cocoa 检查是否在基于文档的应用程序中成功保存,cocoa,macos,Cocoa,Macos,我有一个基于Cocoa文档的图片编辑应用程序。和往常一样,我的应用程序有文件->保存菜单和文件->另存为菜单 文件->保存菜单链接到NSDocument子类中的saveDocument: 文件->另存为菜单链接到NSDocument子类中的saveDocumentAs: 在这两种情况下,在成功保存时,我想向用户提供一份NSAlert表,说明保存成功,该表还向用户提供将文档上载到Facebook等的选项 我如何知道文档已成功保存 我知道在文件->另存为的情况下,我可以创建一个新的操作方法mySav

我有一个基于Cocoa文档的图片编辑应用程序。和往常一样,我的应用程序有文件->保存菜单和文件->另存为菜单

文件->保存菜单链接到NSDocument子类中的saveDocument:

文件->另存为菜单链接到NSDocument子类中的saveDocumentAs:

在这两种情况下,在成功保存时,我想向用户提供一份NSAlert表,说明保存成功,该表还向用户提供将文档上载到Facebook等的选项

我如何知道文档已成功保存

我知道在文件->另存为的情况下,我可以创建一个新的操作方法mySaveDocument:并调用

saveDocumentWithDelegate:didSaveSelector:contextInfo:

从mySaveDocument:但是我应该如何处理文件->另存为?

在您的
NSDocument
子类中,重写:

- (BOOL)saveToURL:(NSURL *)absoluteURL
           ofType:(NSString *)typeName
 forSaveOperation:(NSSaveOperationType)saveOperation
            error:(NSError **)outError
{
    BOOL success = [super saveToURL:absoluteURL
                             ofType:typeName
                   forSaveOperation:saveOperation
                              error:outError];

    if (success) {
        …
    }

    return success;
}
每当保存文档时,都会调用此方法


有关保存文档时会发生什么的详细信息,请阅读文档。

您知道有多少主流Mac OS X应用程序会弹出一张表格,告诉您文件已成功保存?回答:没有,而且理由充分。最好将你的“你想上传到Facebook吗?”问题放在“保存”面板上,然后在保存有效的情况下,在没有任何提示的情况下进行保存。中断用户的工作流程只是为了告诉他们是否出了问题。