2011-10-23 36 views
1

Mac OS X的人機界面指南說,在他們的有關Windows部分:的Mac:保存信息,而無需修改日期戳文件

需要注意的是,如果用戶打開,移動和關閉文檔窗口而不做任何其他更改,您應該保存新的窗口位置,但不應該修改文件的日期戳記。

我們怎麼做呢?如果我有一個基於文檔的應用程序,並且我想在他們的文件中保存文檔的窗口位置和大小,而不觸摸他們的日期戳,我覆蓋dataOfType:error等。但是,據我所知,所有這些自動修改該文件的日期戳。

只有一種辦法,我看要做到這一點,這是怎樣的一個黑客:使用NSFileManager臨時保存文件的舊日期戳,將文件保存在窗口的位置,然後用setAttributes:ofItemAtPath:error改回來。

有沒有更好的方法?當然,如果這是一個共同的任務......

回答

1

如何在節約NSUserDefaults的,而不是在文檔窗口的位置?

+0

感謝您的回答!但是,據我所知,使用'NSUserDefaults'將涉及必須跟蹤應用程序中保存的每個文檔。無論何時應用程序啓動,它都需要檢查其保存文件集中的任何文件是否從系統中刪除 - 實際上即使這樣也可能不起作用,因爲它們可能只是在可移動磁盤中。所以也許我錯過了一些東西但我不認爲這是可行的。這是困擾我,因爲HIGs說這應該是一個共同的任務... – user644104

+0

當然 - 你可以使用一些獨特的文檔ID保存字符串編碼的矩形(在你的文檔數據中隱藏的UUID屬性應該沒問題)。實際上,我認爲這是一個更好的主意(因爲它是該機器上用戶特定的(因爲其他機器可以具有其他屏幕幾何形狀))將其設置爲用戶默認值,而不是寫入文件和欺騙時間戳。蘋果的指導方針並不總是最好的方式去...... :-) –

+0

考慮一下:如果你在文檔中存儲了該矩形,並且該矩形跟隨着該文件到一個小屏幕的新計算機上,那麼你必須確保恢復的矩形會根據較小的屏幕進行調整,從而覆蓋原始計算機上完美有效的位置。現在您可以在原來的計算機上重新打開另一臺計算機的「更正」幀。爲什麼?爲什麼不在該計算機上存儲用戶和計算機特定的文檔窗口框架,以便無論打開哪個位置都始終有效? –

相關問題