gpt4 book ai didi

macos - 从模板打开无标题文档

转载 作者:行者123 更新时间:2023-12-03 17:52:10 26 4
gpt4 key购买 nike

在无标题文档的位置,我想在我的应用程序包中加载给定文档并让它表现得像无标题

在 NSDocumentController 中重写此方法是可行的,但有一个问题,一旦我关闭无标题文档,该文件就会从 bundle 中删除......

- (id)makeUntitledDocumentOfType:(NSString *)typeName error:(NSError *__autoreleasing *)outError {

NSString * extension = @"aaa";
NSString * untitledFilePath = [[NSBundle mainBundle] pathForResource:@"untitled" ofType:extension];
NSURL * sourceUrl = [[NSURL alloc] initFileURLWithPath:untitledFilePath];

Document * document = [[Document alloc] initForURL:nil withContentsOfURL:sourceUrl ofType:typeName error:outError];
return document;
}

如何从应用程序包中保存的"template"文档“加载”无标题文档?

最佳答案

何时 -initForURL:withContentsOfURL:ofType:error:被调用 nil作为初始 URL,这通常是 sourceURL 的信号将是一个未保存的自动保存文件,如果您最终不保存,该文件将被删除(如果您保存,它将被移动)。

我建议您初始化文档,然后使用 read 之一document 的方法读取内容并覆盖空文档。如果您希望在执行此操作后轻松放弃这些(即,如果不对模板文档进行更改,则不会出现保存提示),您可能需要设置 NSChangeCleared使用updateChangeCount: .

例如(插入当前文档初始化行的位置:

NSError *error;
Document *document = [[Document alloc] initWithType: extension error: &error];
if (document) {
// load template
if (![document readFromURL: sourceURL ofType: extension error: &error]) {
// do something appropriate to abort the load
}
[document updateChangeCount: NSChangeCleared]; // don't prompt for save w/o changes
}
return document;

关于macos - 从模板打开无标题文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23269939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com