2011-04-28 45 views
0

我有一个基于Cocoa文档的图片编辑应用程序。像往常一样,我的应用程序同时具有文件 - >保存菜单和文件 - >另存为菜单。检查保存是否成功发生在Cocoa基于文档的应用程序

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

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

在这两种情况下,一个成功的保存,我想向用户提供NSAlert表格,说明保存是成功的,并且该表格还向用户展示了将文档上传到Facebook等的选项。

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

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

saveDocumentWithDelegate:didSaveSelector:contextInfo: 
从mySaveDocument

:但我应该做的文件 - >另存为?

+0

您知道有多少个主流Mac OS X应用程序弹出表单来告诉您文件已成功保存?答:没有,并且有充分的理由。最好把你的“你想上传到Facebook吗?”问题在保存面板本身,然后只是做没有更多的提示如果保存工程。只中断用户的工作流程,告诉他们是否出错。 – JeremyP 2011-04-28 13:11:17

回答

1

在你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; 
} 

该方法被调用。

有关保存文档时会发生什么的更多信息,请阅读Message Flow in the Document Architecture page of the Document-Based Applications Overview文档。

相关问题