【发布时间】:2018-02-26 16:14:22
【问题描述】:
我有一个基于NSDocument 的应用程序,其中文档的窗口可能有子窗口,在关闭文档之前需要查询这些子窗口以进行更改。所以我尝试通过拦截关闭文档窗口来做到这一点,但是我找不到可靠的方法。
我尝试为此使用-[Document canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:],但显然只有在文档发生更改时才会调用它(由-updateChangeCount 发出信号)。如果没有更改,则永远不会调用它。
我使用视图控制器的viewWillDisappear 更新文档的另一次尝试也失败了,因为注册文档的任何更改为时已晚,因此它们不会被保存(canCloseDocumentWithDelegate:... 已经在此调用点。)
解决这个问题的最佳方法是什么?
【问题讨论】:
-
为什么不更新更改计数?
-
啊,这很难解释。我想保持子窗口中的更改独立于主文档,因此用户可以决定不将子窗口中的更改保存到主文档中。但我可能会改变它以采用更传统的方法。
-
你有没有设法解决这个问题?我也有同样的问题。我有一个文本字段,通常只有在用户按下 Return 后才会提交,但是当文档关闭时,我需要将这些更改与文档一起保存。
-
我接受了@Amin Negm-Awad 的建议 - 我更改了结构,以便主窗口知道“子”窗口的任何更改。想来想去,觉得合乎逻辑。