마지막 창을 닫은 후 Mac OS X 응용 프로그램을 닫으려면


45

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

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

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

답변:


22

RedQuits를 사용해보십시오 :

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


3
재미있는 점은 지침에서 빨간색 버튼을 누를 때 RedQuits 자체가 종료되지 않는다는 것입니다. 간단하지만 훌륭하지만 화이트리스트는 없습니다.
Michael Ozeryansky

RedQuits는 빨간색 종료 버튼을 클릭하면 응용 프로그램을 닫지 만 Cmd + W를 사용하여 마지막 창을 닫을 때는 그렇지 않습니다.
Sampo

23

한마디로 : 아니오.

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

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

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

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


1
의견으로서의 개인적인 의견 : 매일 두 플랫폼을 다룰 때 : 익숙해졌습니다. 그다지 큰 차이를 만들지 않으며 항상 그렇듯이 양면이 있습니다. 앱이 실행되는 동안 각 후속 시작은 매우 빠릅니다. 한 번에 한 번만 사용하는 앱은 사용한 직후에도 닫을 수 있습니다. 나는 Windows에서 Alt-F4 / Strg-F4보다 Mac에서 Apple-Q / Apple-W에 훨씬 빨리 익숙해졌습니다.
Wolf

28
Command-Tab을 사용하여 응용 프로그램을 전환하는 동안 (따라서 Command를 계속 누른 상태에서) Q를 눌러 해당 응용 프로그램 스위처에서 현재 강조 표시된 응용 프로그램을 종료 할 수도 있습니다.
Arjan

Arjan의 댓글에 +1 한 번에 수많은 앱을 닫을 수있는 놀라운 방법입니다. 메모리를 확보해야 할 때마다이 작업을 수행하십시오.
Dan Rosenstark 09 년

2
실제로 정말 짜증나는 것은 최소화 된 앱이 앱 스위처에 표시되었지만 선택하면 복원되지 않는다는 것입니다. 나는 매우 일관성이 없다는 것을 알았습니다. 최근에 말 그대로 몇 년 동안 사용한 후 ALT를 누르는 동안 (최소화 된) 앱으로 전환하면 복원됩니다. 허우 레이 !!!
Wolf

15
잔인하게 정직하게 말하면, 증상이 정상인지 아닌지에 관심이있는 사람은 아닙니다. 증상을 없애는 방법에 관심이 있습니다.
wfaulk

3

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

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

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

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

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


작동하지 않는 것을 제외하고는 좋은 생각 인 것 같습니다. refreshWindowedProcess ()에서 "name"을 "displayed name"으로 변경하여 "이 응용 프로그램이 어디에 있습니까?"라는 메시지를 표시하지 않아도되었지만 아무 것도 종료하지 않는 것 같습니다.
wfaulk

어떤 OS X 버전을 사용하고 있습니까? Snow Leopard에서 스크립트를 작성했는데 AppleScript에 큰 변화가 있는지 확실하지 않습니다.
dotHTM

걱정 마세요, OmniGraffle Pro가 방금 해냈습니다. Finder의 이름이 실제 파일 이름이 아니라는 것이 매우 재밌습니다. 대신 번들 식별자를 사용하여 이에 대한 수정 사항을 작성할 수 있는지 확인할 수 있습니다.
dotHTM

애플리케이션 이름 대신 번들 식별자를 사용하여 업데이트되었습니다 (애플리케이션의 파일 이름과 다를 수 있음). 소스에는 각 번들 식별자의 창 목록을보고하는 주석 처리 된 두 줄에 대한 메모가 있습니다. 보이는 응용 프로그램이 열려 있지 않더라도 많은 응용 프로그램에서 적어도 하나의 창이 열려 있다고보고합니다. NetNewsWire는 메인 윈도우가 "닫힌"후에도 긴 윈도우 목록을 갖는 그러한 앱 중 하나입니다. 적중 목록은 단일 창이 항상 열려 있도록 유지하는 또 다른 앱입니다.
dotHTM

Count of Windows = 0은 종료 상태를 감지하는 가장 확실한 방법으로 보이지만 모든 앱에서 작동하지는 않습니다. 내 코드에 추가 할 자신의 조건을 생각해보십시오. 모든 응용 프로그램에 AS 사전이있는 것은 아니기 때문에 해당 응용 프로그램에 다른 조건이 있는지 확인하기가 어렵습니다 (각각 별도의 규칙을 만드는 데 시간이 걸리는 것은 아님). "헤드리스 응용 프로그램을 계속 실행하는 것은 Mac Culture의 일부입니다"라는 다른 대답에 동의하는 경향이 있습니다.
dotHTM

3

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

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

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

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

[...]

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


1
10.7.4의 조건에서 미리보기가 자동으로 사라지지는 않습니다.
wfaulk

나는 당신의 의견을 일찍 놓쳤지만 10.8.2에서 나에게 도움이됩니다. 미리보기를 숨기 전에 하나 이상의 창 (예 : 환경 설정 창 열기 및 닫기)을 열었습니까?
Lri

2

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


4
답변을 보내 주셔서 감사합니다. 링크 된 제품 / 블로그와의 제휴 관계를 공개해야합니다. 모든 것이 보드 위에 유지 될 때 일반적으로 문제가되지 않습니다. :)
JoshP

0

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

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

이것은 프로그래머가 프로그램을 수행하는 방법이 아니라 기존 응용 프로그램에서 사용자가이를 수행하는 방법에 대한 질문입니다. 노력해 주셔서 감사합니다.
wfaulk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.