【问题标题】:Prevent autoloading of last opened document防止自动加载上次打开的文档
【发布时间】:2013-11-07 14:44:29
【问题描述】:

目前,基于 Cocoa NSDocument 的应用程序的默认行为是打开最后一个自动打开的文档。我怎样才能防止这种情况发生,以便我可以提供自己的行为?

【问题讨论】:

    标签: cocoa nsdocument


    【解决方案1】:

    我通过将此方法添加到我的 NSDocument 子类来做到这一点:

    - (void)addWindowController:(NSWindowController *)aController {
    
        //
        // Overwritten to reset all window restoration, we do our own.
        // 
        NSWindow    *window=[aController window];
    
        if(
            [window respondsToSelector:@selector(setRestorationClass:)]
            && [window respondsToSelector:@selector(setRestorable:)]
            && [window respondsToSelector:@selector(invalidateRestorableState)]
        )
        {
            [window setRestorationClass:Nil];
            [window setRestorable:NO];
            [window invalidateRestorableState];
        }
    
        [super addWindowController:aController];
    }
    

    IIRC 仅此而已。

    【讨论】:

    • 这对我不起作用(我已经检查过代码是否被调用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2020-11-11
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多