2009-09-10 72 views
15

在可可應用程序中,當您有未保存的數據時,您經常會在窗口的關閉按鈕中看到一個小紅點; TextEdit就是一個很好的例子。我已經通過Cocoa文檔瞭解,但是我找不到以編程方式設置此狀態的方法。我確信有一些非常簡單的方法來做到這一點,但顯然我錯過了一些東西。你如何改變Cocoa窗口關閉按鈕的狀態?

回答

15

要以編程方式進行設置,可以使用NSWindow的-setDocumentEdited:方法。如果您正在編寫基於文檔的應用程序,NSDocumentManager應該會自動檢測與當前NSDocument關聯的NSUndoManager存在未保存更改的時間。

13

取決於您正在構建什麼樣的應用程序。如果是基於NSDocument,則使用NSDocumentupdateChangeCount:方法。如果您剛獲得NSWindowController,請使用setDocumentEdited:NSWindow有一個setDocumentEdited:方法,如果你只有NSWindow

9

另外,在10.6中,'setDocumentEdited'標記應用程序很髒,所以不能被快速殺死。如果你不叫這樣做,並設置標誌Info.plist中(見What's New in 10.6

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

這樣,如果你的應用程序正在運行(但不髒),那麼Mac OS X可以簡單地殺死它,而不是調用禮貌的關閉請求。如果您的文檔被標記爲髒(或窗口),那麼它將通過正常的應用程序關閉過程關閉它。

相關問題