我在myDocument.m文件中实现了一些代码,它只是尝试在启动时加载上次使用的文档。但是,从全新安装启动(或在删除最后使用的文件后运行)时,不会出现“新”文档窗口。有谁知道我的代码要添加什么来做到这一点?这是:
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
NSURL *lastURL=[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:lastURL display:YES error:nil];
if (lastURL!=nil)
{
[docController openDocumentWithContentsOfURL:lastURL display:YES error:nil];
return NO;
}
return YES;
}
答案 0 :(得分:1)
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
NSArray* urls = [[NSDocumentController sharedDocumentController] recentDocumentURLs];
if ([urls count] > 0){
NSURL *lastURL= [urls objectAtIndex: 0];
if ([[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:lastURL display:YES error:nil]){
return NO;
}
}
return YES;
}
修改
我改变了它并尝试了它现在应该工作。
答案 1 :(得分:0)
什么是docController
,为什么要发送-openDocumentWithContentsOfURL:display:error:
两次?请注意,该方法返回文档而不是URL,因此使用返回值作为URL无论如何都不会起作用。
以下是更清晰的等效代码:
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
{
id lastDoc = [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:lastURL
display:YES error:NULL];
return (lastDoc == nil);
}
但是,它仍然无法解释您为何没有获得无标题文档。如果您注释掉-applicationShouldOpenUntitledFile:
以便应用程序遵循标准Cocoa行为会发生什么?问题可能出在其他地方。