gpt4 book ai didi

cocoa - 强制 NSDocument 创建后保存

转载 作者:行者123 更新时间:2023-12-03 17:49:43 24 4
gpt4 key购买 nike

在其文档中,我的应用程序使用了许多与文档路径相关的资源。因此,在添加 Assets 之前必须保存文档。如何强制调用 [NSDocument saveDocumentAs] ?

我设法完成了其中的一部分:通过创建自己的文档 Controller ,并在 openUntitledDocumentAndDisplay: 内部强制进行如下调用:

- (id)openUntitledDocumentAndDisplay:(BOOL)displayDocument error:(NSError **)outError
{
NSDocument * res = [super openUntitledDocumentAndDisplay:displayDocument error:outError];
[res saveDocumentAs:self];


return res;
}

这会强制显示保存对话框,但不幸的是我无法检查用户是否按下了取消:saveDocumentAs 调用是异步的并立即继续!

有办法解决这个问题吗?

最佳答案

我也遇到了类似的问题。通过使用:saveDocumentWithDelegate:(id)delegate didSaveSelector:(SEL)didSaveSelector contextInfo:(void *)contextInfo您可以推迟(或不推迟)处理,直到文档保存对话框完成。这意味着您可以查明用户是否取消。您将处理分成两部分,进行所需的任何准备,然后将其余部分(这取决于成功保存)放入另一种方法中。如果你使用类似的东西:

[self saveDocumentWithDelegate:self didSaveSelector:@selector(actuallyDoIt: didSave: contextInfo:) contextInfo:nil];

文档将被保存,但重要的是,如果以前没有保存过,则会出现“保存”对话框,以便用户可以输入文件名。一旦他/她完成了该操作或取消了,您的方法actualDoIt:(或其他)就会被调用。 didSave: 参数告诉您保存是否实际发生(本质上,用户是否取消),因此您可以继续或提供警报,礼貌地向用户解释在保存之前不会发生任何事情。

关于cocoa - 强制 NSDocument 创建后保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080031/

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