2009-09-10 11 views
15

Cocoaアプリケーションでは、保存されていないデータがあると、ウィンドウの閉じるボタンに赤い点が表示されることがよくあります。 TextEditはこれの良い例です。私はCocoaのドキュメントを参照しましたが、プログラムでこの状態を設定する方法が見つかりません。本当に簡単な方法があると確信していますが、明らかに何か不足しています。Cocoaのウィンドウクローズボタンの状態をどのように変更しますか?

答えて

15

プログラムで設定するには、NSWindowの-setDocumentEdited:メソッドを使用できます。ドキュメントベースのアプリケーションを作成している場合、NSDocumentManagerは、現在のNSDocumentに関連付けられているNSUndoManagerへの変更が保存されていないことを自動的に検出する必要があります。

13

あなたが構築しているアプリケーションの種類によって異なります。 NSDocumentの場合は、NSDocumentupdateChangeCount:メソッドを使用します。ちょうどNSWindowControllerがある場合、setDocumentEdited:を使用してください。あなたが持っているものがNSWindowなら、NSWindowにはsetDocumentEdited:メソッドがあります。

9

また、10.6では、 'setDocumentEdited'はアプリケーションをダーティとマークしているため、高速消去できません。あなたのアプリが実行されている(ただし、汚れていない)されている場合は、そのように

What's New in 10.6を参照)
<key>NSSupportsSuddenTermination</key> 
<string>YES</string> 

これを呼び出して、Info.plistファイルにフラグを設定しない場合は、Mac OS Xは、単純に殺すことができますそれは丁寧なシャットダウン要求を呼び出すのではなく、あなたの文書が汚れている(またはウィンドウがある)とマークされている場合、それは通常のアプリケーションシャットダウンプロセスを経てシャットダウンします。

関連する問題