我有一個NSDocument
子類,它提供了一個來自磁盤的文本文檔。我試圖在檢測到磁盤上的文件更改時自動刷新它。我重寫-presentedItemDidChange
這樣的:如何禁止自動保存「該文件已被其他應用程序更改」警報?
- (void)presentedItemDidChange
{
[super presentedItemDidChange];
// Ignoring bundles and error-handling for the moment.
NSData *newData = [NSData dataWithContentsOfURL:self.presentedItemURL];
self.textView.string = [[NSString alloc] initWithData:newData encoding:NSUTF8StringEncoding];
}
的UI刷新罰款時,該文件在另一個應用程序發生改變。問題是,我得到這個對話框,當我嘗試將文檔保存在我的應用程序它是由另一個應用程序修改後:
我種有一個想法,爲什麼發生這種情況(不知道它是否是正確的):文檔的修改時間晚於我的應用中最新保存的版本(因爲它由另一個應用修改)。但是我可以通知自動保存系統我已經做了一些事情並讓它消失嗎?或者當我刷新文檔時,我做錯了什麼,我應該以其他方式正確處理文檔版本?我需要考慮外部應用程序支持或不支持自動保存。
在此先感謝。
查看configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:本頁提到的錯誤方法http://stackoverflow.com/questions/3872727/programmatically-save-causes-document-to-think-other-app- changes-doc-when-re-ope – Coder404 2014-09-13 01:52:27
我確實找到了這篇文章,但我並沒有重寫那個方法,所以沒有什麼可以刪除的。此外,既不設置'setDocumentEdited:'也不'updateChangeCount:'來解析對話框。 – uranusjr 2014-09-14 05:03:06