1
我想知道當這個文檔只是一個簡單的txt文件時,如何保存文檔的首選項,如窗口大小,在屏幕中的位置等。 (我的應用程序是一個文本編輯器)當它是一個txt文件時保存文檔的首選項
我想到NSUserDefaults並保存文件路徑,但如果稍後關閉應用程序時移動文件會發生什麼?使用NSUserDefaults真的是個好主意嗎? 我要找的建議
感謝
編輯: 我添加了這兩種方法MyDocument.m(感謝@somegeekintn @Black青蛙)
//helper method that set NSWindow frame string in file system attributes
- (BOOL) _savePreferencesInFileAtURL:(NSURL *)absoluteURL{
const char *path = [[absoluteURL path] fileSystemRepresentation];
const char *name = [@"NSWindow frame" cStringUsingEncoding:NSUTF8StringEncoding];
const char *frameCString = [NSStringFromRect([window frame]) cStringUsingEncoding:NSUTF8StringEncoding];
int result = setxattr(path , name, frameCString, strlen(frameCString) + 1, 0, 0);
return (result<0)? NO: YES;
}
//helper method that reads NSWindow frame string from file system attributes
- (BOOL) _readPreferencesInFileAtURL:(NSURL *)absoluteURL{
const char *path = [[absoluteURL path] fileSystemRepresentation];
const char *name = [@"NSWindow frame" cStringUsingEncoding:NSUTF8StringEncoding];
char frameCString [50];
ssize_t bytesRetrieved = getxattr(path, name, frameCString, 50, 0, 0);
//use frameCString...
return (bytesRetrieved<0)? NO: YES;
}
@ nacho4d,你會發現使用setxattr的例子,getxattr [這裏](http://www.cocoabuilder.com/archive/cocoa/299586-length-of-nswindow- stringwithsavedframe-result.html) – 2011-04-12 18:14:43
感謝它的工作!我已經更新發布了我寫的代碼:) – nacho4d 2011-04-13 06:43:28