2015-12-06 57 views
8

当您在没有任何当前打开的文档的情况下在Mac上打开基于iCloud的基于文档的应用程序时,会出现打开的文件对话框。你如何防止在启动时出现打开的文件对话框?我有一个我更喜欢显示的欢迎屏幕。防止在OS X启动时出现iCloud打开文件对话框

+0

我以为基于文档的应用程序会在启动时打开一个新文档,如果没有文档在上次退出时打开..? – insys

+0

我没有意识到这是相关的,但它只发生在启用iCloud。 –

+0

不幸的是,我不能在那里使用解决方案。 –

回答

1

要验证您的声明,我在XCode中创建了一个基于文档的新应用程序项目并运行它。我没有打开文件对话框!尽管我打开了一个空白的新文档。这是你的意思吗?我找不到任何记载的方式来禁止打开此初始空白文档。我设法抑制与下面的技巧这种行为,使用您的文档类的初始化:

- (instancetype)init { 
    self = [super init]; 
    if (self) { 
     // Add your subclass-specific initialization here. 
    } 
    NSLog(@"Document init"); 
    if (alreadysuppressed) 
     return self; 
    alreadysuppressed = 1; 
    return nil; 
} 

正如你所看到的,它使用一个变量(称为“alreadysuppressed”这里)要记住,如果抑制了已经完成了,所以它将在每次应用程序运行时完成一次。我知道这是一个黑客攻击,但它适用于基于通用文档的应用程序。 如果你真的得到了打开文件对话框,而不是上述行为的话,我建议增加一个类似的黑客攻击,您的应用程序委托类:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender 
{ 
    NSLog(@"applicationShouldOpenUntitledFile: %d", alreadysuppressed); 
    if (! alreadysuppressed) { 
     alreadysuppressed = 1; 
     return NO; 
    } 
    return YES; 
} 

虽然因为我没有得到的文件打开我无法测试这种情景对话框在基于通用文档的应用程序中

+0

我上面做了一些修改。我没有意识到这只发生在启用iCloud的情况下,这是我的情况。 –

相关问题