Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何停用窗口恢复?_Macos_Cocoa_Nsdocument_Nspersistentdocument - Fatal编程技术网

Macos 如何停用窗口恢复?

Macos 如何停用窗口恢复?,macos,cocoa,nsdocument,nspersistentdocument,Macos,Cocoa,Nsdocument,Nspersistentdocument,我使用的是SDK 10.8 我正在对NSPersistentDocument进行子分类(但这个问题可能会引起对NSDocument进行子分类的人们的兴趣),我想停用窗口恢复。到目前为止,我所做的是: -(void)restoreStateWithCoder:(NSCoder *)coder { NSLog(@"No 1") ; } -(void)restoreDocumentWindowWithIdentifier:(NSString *)identifier

我使用的是SDK 10.8

我正在对
NSPersistentDocument
进行子分类(但这个问题可能会引起对
NSDocument
进行子分类的人们的兴趣),我想停用窗口恢复。到目前为止,我所做的是:

-(void)restoreStateWithCoder:(NSCoder *)coder
{
    NSLog(@"No 1") ;
}


-(void)restoreDocumentWindowWithIdentifier:(NSString *)identifier
                                     state:(NSCoder *)state
                         completionHandler:(void (^)(NSWindow *, NSError *))completionHandler
{
    NSLog(@"No 2") ;
}
问题是,当我尝试在应用程序中创建新文档时,没有显示任何窗口


取消窗口恢复的正确方法是什么?以下方法可行,但我必须承认,我不知道确切原因

-(void)restoreDocumentWindowWithIdentifier:(NSString *)identifier
                                     state:(NSCoder *)state
                         completionHandler:(void (^)(NSWindow *, NSError *))completionHandler 
{
    DDLogWarn(@"Method 'restoreDocumentWindowWithIdentifier...' overidden") ;

    [[NSDocumentController sharedDocumentController] newDocument:nil] ;
}


- (void)restoreStateWithCoder:(NSCoder *)coder 
{
    DDLogWarn(@"Method 'restoreStateWithCoder...' overidden") ;

    [[NSDocumentController sharedDocumentController] newDocument:nil] ;
}

此窗口恢复功能使我的应用程序无法启动,例如在崩溃后(或者我在xcode中单击stop)。我不希望我的应用程序的用户面临同样的问题,无法再启动应用程序


只有在存储状态已损坏或更改了存储状态下的密钥时,才会出现这种情况

在正常情况下,存在状态恢复以保存用户数据(他们没有手动保存),以防发生崩溃。当应用程序在他们身上崩溃时,用户希望这些数据在那里

出于调试目的,您可以在Xcode方案中禁用状态恢复:


这只是为了测试目的吗?如果是这样的话,有一种更好的方法可以做到这一点,它不需要修改代码。这种窗口恢复功能使我的应用程序无法启动,例如在崩溃后(或者我在
xcode
中单击“停止”)。我不希望我的应用程序的用户面临同样的问题,无法再启动应用程序。因此,我想停用此功能。但是,如果你有更好的,那就太好了!只有在存储状态已损坏或更改了存储状态下的密钥时,才会出现这种情况。在正常情况下,存在状态恢复以保存用户数据(他们没有手动保存),以防发生崩溃。当应用程序在他们身上崩溃时,用户希望这些数据在那里。出于调试目的,您可以在Xcode方案中禁用状态恢复:@PeterHosey如果需要,您可以添加注释作为答案!