2012년 9월 22일 토요일

[Cocoa] 창이 다 닫기면 앱 종료하기

처음으로 써 보는 코코아 관련 메모. 기본적으로 코코아 앱은 멀티 윈도우를 지원하는 경우 창을 다 닫아도 앱 자체가 종료되지 않는다. 만약 윈도우(MS-Windows) 처럼 창이 다 닫기면 애플리케이션이 종료되길 원한다면 AppDelegate에 다음 코드를 넣는다.
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{
    return YES;
}
굳이 설명하지 않아도 코드만으로도 내용 이해가 가능하다.

...

그런데 이 방식 말고 이전에는 info.plist를 수정해서 하는 방법도 있었는데 XCode를 4.5로 올린 뒤 시험해 보니 안된다. 뭐 그래도 기록으로 남겨두자.

  1. info.plist를 열어서 NSSupportsAutomaticTermination 라는 키를 하나 만든다. 
  2. 이 키의 타입을 Boolean으로 설정한다. 
  3. 값은 YES로 한다.

된다면 되는거고 안되면 위의 방법을 쓰면 된다.

댓글 2개 :

익명 :

xcode 4.5 부터는 .plist가 binary type이라 xcode 안의 plist editor 나 textwrangler로 수정해야 한다고 합니다. 참고하세요~

Renn Seo :

감사합니다. 참고하겠습니다. :-)