【问题标题】:NSWindow "Edited" not shownNSWindow“已编辑”未显示
【发布时间】:2020-09-01 15:36:56
【问题描述】:

我有一个应用程序,主要用于提交文件,但在某些情况下也可以更改提交的文件。 这就是为什么我的应用不是真正的基于文档的应用。

尽管如此,当文档已被编辑且更改尚未保存时,我想在我的窗口标题中显示“- 已编辑”附加项。

因此我必须在我的 AppDelegate 中使用方法

@objc func didEditDocument(_ notification: Notification) {
    myMainWindow.windowController?.setDocumentEdited(true)
}


@objc func didSaveDocument(_ notification: Notification) {
    myMainWindow.windowController?.setDocumentEdited(false)
}

在调用.setDocumentEdited(true) 后,我希望我的窗口标题从MyWindow 更改为MyWindow — Edited,但这并没有发生。但是红色关闭按钮中的点会发生变化。我做错了什么?

【问题讨论】:

    标签: swift macos cocoa nswindow document-based


    【解决方案1】:

    我做错了什么

    什么都没有。当您拒绝 NSDocument 架构时,您拒绝了自动“已编辑”标题更改以及许多其他自动松脆的优点。没有错,但是当松脆的善良消失时,你不能抱怨。如果您想更改标题,则必须自己更改。

    【讨论】:

    • 好的,但我认为使用基于文档的应用程序是错误的,因为我的应用程序一次只能显示一个文档?我想当您使用基于文档的应用程序时,您需要能够显示多个文档窗口?
    • 关闭按钮怎么变了?那是提供的东西,但窗口标题没有?
    • 是的,您只是通过撤消管理器,这是一个单独的机制(NSDocument 架构也使用它)。
    • 好的,我认为所有这些对于我的目的来说都太过分了。我会坚持你自己更改窗口标题的建议。感谢您的帮助!
    • 好的,你问了一个更深入的问题,那就是,你应该使用文档架构吗?我有点认为是的。如果您可以打开和保存文档,即使一次只能打开一个,我认为这就是文档架构,然后您可以对其进行调整,使其无法一次打开多个...?
    猜你喜欢
    • 1970-01-01
    • 2021-03-07
    • 2015-04-27
    • 1970-01-01
    • 2016-05-06
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多