防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]

Posted

技术标签:

【中文标题】防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]【英文标题】:Prevent iCloud open file dialog from appearing on startup in OS X [duplicate] 【发布时间】:2015-12-06 02:29:03 【问题描述】:

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

【问题讨论】:

我认为如果上次退出时没有打开任何文档,基于文档的应用程序会在启动时打开一个新文档.. ? 我没有意识到这是相关的,但它只发生在启用 iCloud 的情况下。 很遗憾没有我可以使用的解决方案。 【参考方案1】:

为了验证您的说法,我在 XCode 中创建了一个新的基于文档的应用程序项目并运行它。我没有打开文件对话框!我确实打开了一个空白的新文档。这是你的意思吗?我找不到任何有据可查的方法来禁止打开这个初始空白文档。我使用 Document 类的初始化程序通过以下 hack 设法抑制了这种行为:

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

如您所见,它使用一个变量(此处称为“已经抑制”)来记住抑制是否已经完成,因此每次应用程序运行都会完成一次。我知道这是一个 hack,但它适用于基于通用文档的应用程序。 如果您真的得到文件打开对话框而不是上述行为,那么我建议在您的应用程序委托类中添加类似的 hack:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender

    NSLog(@"applicationShouldOpenUntitledFile: %d", alreadysuppressed);
    if (! alreadysuppressed) 
        alreadysuppressed = 1;
        return NO;
    
    return YES;

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

【讨论】:

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

以上是关于防止在 OS X 中启动时出现 iCloud 打开文件对话框 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

python中路径问题,防止在引包时出现路径错误的问题

在 10.6 上测试 Mac OS X 10.7 特定代码时出现“未找到符号”崩溃

在 Mac OS X 中创建反应应用程序时出现 EACCESS 权限错误

在OS X上使用屏幕时出现“spwd:command not found”

从 Mac OS X 10.6 64 位 macbook 运行时出现 CORBA 异常

尝试在 OS X El Capitan 上安装 PyCrypto 时出现致命错误