在 "Save changes?" sheet 之前拦截 NSDocument 关闭
Intercepting NSDocument close before "Save changes?" sheet
我有一个基于 NSDocument
的应用程序,其中文档的 window 可能有子项 windows,需要在关闭文档之前查询更改。所以我尝试拦截文档的关闭window来做到这一点,但我找不到可靠的方法
我尝试为此使用 -[Document canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]
,但显然这仅在文档发生更改时调用(由 -updateChangeCount
发出信号)。如果没有变化,则永远不会调用它。
我使用视图控制器的 viewWillDisappear
更新文档的其他尝试也失败了,因为现在无法在文档中注册任何更改,所以它们不会被保存 (canCloseDocumentWithDelegate:...
此时已经调用了。)
解决这个问题的最佳方法是什么?
嗯,我想说的是,如果子 windows 包含在关闭文档之前必须请求的更改,则文档 有 更改。这应该反映在(主要)文件中 window。然而,...
可能 -shouldCloseWindow:
应该被调用,如果文档不包含更改,因此文档系统不要求保存自己。
我有一个基于 NSDocument
的应用程序,其中文档的 window 可能有子项 windows,需要在关闭文档之前查询更改。所以我尝试拦截文档的关闭window来做到这一点,但我找不到可靠的方法
我尝试为此使用 -[Document canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:]
,但显然这仅在文档发生更改时调用(由 -updateChangeCount
发出信号)。如果没有变化,则永远不会调用它。
我使用视图控制器的 viewWillDisappear
更新文档的其他尝试也失败了,因为现在无法在文档中注册任何更改,所以它们不会被保存 (canCloseDocumentWithDelegate:...
此时已经调用了。)
解决这个问题的最佳方法是什么?
嗯,我想说的是,如果子 windows 包含在关闭文档之前必须请求的更改,则文档 有 更改。这应该反映在(主要)文件中 window。然而,...
可能 -shouldCloseWindow:
应该被调用,如果文档不包含更改,因此文档系统不要求保存自己。