代码之家  ›  专栏  ›  技术社区  ›  conmulligan

如何更改cocoa中窗口关闭按钮的状态?

  •  16
  • conmulligan  · 技术社区  · 16 年前

    在Cocoa应用程序中,当您有未保存的数据时,通常会在窗口的“关闭”按钮中看到一个小红点;textedit就是一个很好的例子。我已经仔细阅读了Cocoa文档,但是我找不到一种以编程方式设置此状态的方法。我肯定有一些非常简单的方法,但很明显我错过了一些东西。

    3 回复  |  直到 16 年前
        1
  •  15
  •   titaniumdecoy Mr. T    16 年前

    要以编程方式设置它,可以使用 -setDocumentEdited: nswindow方法。如果您正在编写基于文档的应用程序,NSDocumentManager应自动检测与当前NSDocument关联的NSindomManager的未保存更改。

        2
  •  14
  •   Alex    16 年前

    取决于您正在构建的应用程序类型。如果是 NSDocument 基于,使用 NS文档 updateChangeCount: 方法。如果你有一个 NSWindowController 使用 setDocumentEdited: . NSWindow 有一个 设置文档编辑: 方法如果你所拥有的只是 恩斯多夫 .

        3
  •  9
  •   AlBlue RACGAMERUP    16 年前

    另外,在10.6中,“setdocumentedited”将应用程序标记为脏的,因此不能快速终止。如果您不调用它,并在info.plist中设置标志(请参见 What's New in 10.6 )

    <key>NSSupportsSuddenTermination</key>
    <string>YES</string>
    

    这样,如果你的应用程序正在运行(但不是脏的),那么MacOSX可以简单地终止它,而不是调用礼貌的关机请求。如果您的文档被标记为脏(或窗口被标记为脏),那么它将通过正常的应用程序关闭过程来关闭它。