마지막 창을 닫은 후 Mac OS X 응용 프로그램을 닫으려면 특징을 가진 다른 프로그램에도 해당

나는 그것이 단지 애완 동물 인 것을 알고 있지만, Mac OS X의 Preview.app는 창이 열려 있지 않을 때 열린 상태로 유지되는 것을 싫어합니다. 마지막 창이 닫힐 때 닫을 방법이 있습니까?

미리보기에는 이러한 옵션을 사용할 수있는 옵션이 없으므로 비슷한 특유의 특징을 가진 다른 프로그램에도 해당 대답이 적용될 수 있다고 생각합니다.

나는 이것이 OS의 인터페이스 지침을 벗어난 것이 아니라는 것을 알고 있습니다. 즉, 이것이 수정 될 버그가 아니라는 것을 알고 있습니다. 창을 열지 않은 선택된 GUI 응용 프로그램을 자동으로 닫을 수있는 방법이 있는지 궁금합니다.



답변

RedQuits를 사용해보십시오 :

RedQuits는 빨간 버튼으로 응용 프로그램을 닫으려고 시도했지만 여전히 열려있는 이유를 궁금한 경우 도움이됩니다. RedQuits를 사용하면 해당 프로그램에 대한 창이 하나만 남아 있으면 모든 프로그램이 종료됩니다. 프로그램의 열려있는 모든 창을 종료하고 닫으려면 “해당 앱에 하나의 창이 남았을 때만 종료”를 선택 해제하십시오. 환경 설정에서.


답변

한마디로 : 아니오.

-답은 여기서 멈 춥니 다. 다음의 모든 것은 이유를 설명하려는 나의 시도 일뿐입니다.

여러분이 겪고있는 것은 응용 프로그램의 작동 방식에 대한 Mac 철학입니다. 마지막 창을 닫은 후에 닫은 사람들 Mac 인터페이스 지침에 따르지 않습니다 (많은 내용이 있지만). // 편집 : 이것은 완전히 정확하지 않습니다. 아래 게시물을 참조하십시오.

최초의 맥 시스템 (1984 년) 이래로 그렇게되었습니다. 앞으로 25 년 동안 우리와 함께있을 것 같습니다. 아마도 앱 개발자는 환경 설정에서이를 설정할 수 있습니다.

그때까지 Command-Q (Apple 키 및 q)에 익숙해 져서 모든 활성 응용 프로그램을 종료하고 Command-W를 활성 창으로 종료하는 데 도움이됩니다.


답변

나는 이것을 위해 AppleScript 응용 프로그램을 작성했습니다.

간단히 말해 어떤 응용 프로그램이 열려 있는지 확인하고 자동 종료에서 제외 할 응용 프로그램을 허용 목록에 추가 한 다음 60 초마다 모든 응용 프로그램을 종료합니다 (제한으로 인해 가능).

화이트리스트가 실행되는 동안 화이트리스트를 변경하려면 독에서 아이콘을 클릭하여 선택 대화 상자가 다시 나타납니다.

종료하려면 Dock 아이콘을 마우스 오른쪽 버튼으로 클릭하고 “종료”를 선택하십시오.

AppleScript 소스 및 응용 프로그램 : http://files.me.com/kioarthurdane/6kjl9k


답변

10.7에 도입 된 자동 종료 기능은 일부 응용 프로그램의 기능을 부분적으로 해결합니다.

미리보기를 열고 창에서 하나 이상의 창을 열고 모든 창을 닫은 후 다른 응용 프로그램으로 전환하면 미리보기가 Dock 및 응용 프로그램 스위처에서 숨겨집니다. 활동 모니터를 보면 프로세스가 여전히 실행 중이고 메모리를 사용하지만 프로세스 관리 방법에 일부 변경 사항이있을 수 있습니다.

가이드 프로그래밍 맥 앱은 그 프로세스가 실제로 종료됩니다라고, 그래서 내가 부족 뭔가가있을 수 있습니다.

  • 자동 종료 는 사용자가 앱을 종료 할 필요가 없습니다. 대신, 시스템은 백그라운드에서 앱 종료를 투명하게 관리하여 메모리와 같은 필요한 리소스를 회수하는 데 사용되지 않는 앱을 ​​종료합니다.

[…]

자동 종료는 프로세스 관리 작업을 사용자에서 시스템으로 전송하여 작업 처리에 더 적합합니다. 어쨌든 사용자는 프로세스를 수동으로 관리 할 필요가 없습니다. 실제로 필요한 것은 앱을 실행하고 필요할 때 사용할 수있는 앱을 제공하는 것입니다. 자동 종료는 시스템 성능에 부정적인 영향을 미치지 않으면 서이를 가능하게합니다.


답변

작고 간단한 또 ​​다른 무료 앱인 Quitter는 트레이 바에 X 아이콘을 표시합니다.이 아이콘은 Windows에서 닫기 단추와 같은 역할을합니다.


답변

NSApplicationDelegate(보통을 반환하는 NO) 의 다음 메소드를 재정의하십시오 .

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