2013-10-07 4 views
1

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") ; 
} 

문제는 내가 새 문서를 만들 내 응용 프로그램에서 시도 할 때, 어떤 윈도우가 표시되지 않습니다 것입니다.

창 복원을 비활성화하는 적절한 방법은 무엇입니까?

+0

이 그냥 테스트 목적인가? 그렇다면 코드를 망칠 필요가없는 더 좋은 방법이 있습니다. –

+0

이 윈도우 복원 기능은 충돌 후 (예 :'xcode'에서 멈춤을 클릭)와 같이 내 앱을 실행할 수 없게 만듭니다. 내 앱 사용자가 동일한 문제에 직면하여 더 이상 앱을 시작할 수 없도록하고 싶지 않습니다. 따라서이 기능을 비활성화하고 싶습니다. 그러나, 당신이 나아질 경우, 그것은 좋습니다! – Colas

+1

저장된 상태가 손상되었거나 저장 한 키를 변경 한 경우에만 해당됩니다. 정상적인 상황에서는 충돌이 발생했을 때 사용자 데이터를 저장하기 위해 상태 복원이 존재합니다 (사용자가 수동으로 저장하지 않은 경우) - 사용자가 앱이 충돌 할 때 사용자가 * 원할 것입니다. 디버깅을 위해 Xcode 체계에서 상태 복원을 비활성화 할 수 있습니다. http://i.stack.imgur.com/zQAR4.png –

답변

3

창 복원이 기능은 충돌 후 예를 들어, 내 응용 프로그램의 unlaunchable하게 (또는 내가 엑스 코드에서 중지를 클릭합니다). 내 앱 사용자가 동일한 문제에 직면하여 더 이상 앱을 시작할 수 없도록하고 싶지 않습니다.

저장된 상태가 손상되었거나 저장 한 키를 변경 한 경우에만 해당해야합니다.

정상적인 상황에서는 충돌이 발생했을 때 사용자 데이터를 저장하기 위해 상태 복원이 존재합니다. 사용자가 이 앱이 충돌 할 때 거기에 있기를 원합니다.

디버깅 목적을 위해, 당신은 당신의 엑스 코드 체계로 상태 복원을 해제 할 수 있습니다 :

In Xcode 4's scheme editor, for the Run verb, on the Options tab, check the “Launch application without state restoration” checkbox.

0

다음 작품들이 있지만, 나는 왜 그런지 정확히 알지 못한다.

-(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] ; 
} 
관련 문제