2012-06-02 3 views
2

NSSavePanel이 사용 된 후에 응용 프로그램을 닫는 데 문제가 있습니다 ... 응용 프로그램을 열고 작업 한 다음 닫으면 올바른 방법으로 종료됩니다. .. 나는 내 응용 프로그램 가까이 만들기 위해 AppDelegate에이 코드를 NSSavePanel을 사용하면 응용 프로그램이 닫히지 않습니다.

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender 
{ 
    return YES; 
} 

하지만 난 단지도 ... NSSavePanel로 ... TXT 파일을 저장하기 위해 패널을 열면 나는 그냥하고 돈을 열면

그것을 사용하지 마십시오 ... "취소"버튼을 클릭하면, 내 응용 프로그램이 더 이상 닫히지 않습니다 ... 내가 응용 프로그램을 닫으려면 빨간색 x를 클릭하면 창이 사라지지만 응용 프로그램은 활성 상태로 유지하고 메인을 가져올 방법이 없습니다 창 백업. 내 TXT 파일을 저장하기 위해 사용하고있는 코드는 이것이다 :

NSSavePanel *save = [NSSavePanel savePanel]; 

if (nomePartita != nil) 
{ 
    [save setNameFieldStringValue:nomePartita]; 
} 

[save setAllowedFileTypes:[NSArray arrayWithObject:@"dat"]]; 
[save setAllowsOtherFileTypes:NO]; 

NSInteger result = [save runModal];  

if (result == NSOKButton) 
{ 
// code to save the file here..... 
} 

문제 때문에 그냥이이 선 (내가 작성하고 txt 파일을 저장하는 내 코드의 나머지 밖으로 말은 여기에 있어야합니다) 나는이 문제를 가지고있다. ... 누군가 이런 일이 일어나는 이유를 모른다. 힌트는 대단히 감사하겠습니다! 고마워, 평화, 야무진

+0

저장 패널이 닫혀 있습니까? – rdelmar

+0

그래, 닫는 중 ... 어쨌든 나는 메뉴가 "Close App"이라면 잘 작동한다고 생각했다. 그래서 빨간색 x 버튼을 클릭하면 내 앱이 작동하는 방식이 바뀌고있다. 하지만 숨겨진 남아있을 것입니다 그리고 당신은 메뉴 명령을 사용해야합니다 닫습니다 ... 관심을 가져 주셔서 감사합니다 평화 맛있는 – Blue

답변

0

이 시도 :

NSSavePanel* panel = [NSSavePanel savePanel]; 
    [panel setNameFieldStringValue:newName]; 
    [panel beginSheetModalForWindow:[self window] completionHandler:^(NSInteger result){ 
     if (result == NSFileHandlingPanelOKButton) 
     { 
      NSURL* theFile = [panel URL]; 
      // Write the contents in the new format. 
     } 
}]; 

나는 동일한 문제에 직면하고이 그것을 해결했다. 윈도우의 경우 [NSApp keyWindow]

Apple guideline with sandboxing을 사용할 수도 있습니다.

관련 문제