拦截保存自 "NSDocument is about to close sheet"

Intercept Save from "NSDocument is about to close sheet"

当 NSDocument 被标记为有更改并且用户将其关闭时,会显示 sheet,其中包含不保存、关闭和保存选项。

如何拦截或禁用“保存”按钮?

我已经重写了 -saveDocument: 和 -saveDocumentAs: 但在保存此警告时不会调用这些 sheet?

我试图警告用户文档将被保存为新的文件格式(如果我知道文档是旧格式的话)并且还想防止在软件的演示版本中保存文档。

是否可以修改此路径以便我可以显示我自己的 sheet?

您可以通过覆盖 NSDocument 的 canClose(withDelegate:shouldClose:contextInfo:) 来拦截它。当用户要关闭文档时调用该方法。因此,您可以在调用 super 之前创建自己的警报 sheet。