Como fechar aplicativos Mac OS X após a última janela ser fechada

45

Eu sei que é apenas uma irritação, mas eu odeio que o Preview.app do Mac OS X permaneça aberto quando não houver janelas abertas. Existe alguma maneira de fazê-lo fechar quando a última janela for fechada?

Como não vejo nenhuma opção dentro do Preview para fazer isso acontecer, imagino que a resposta possa ser aplicável a outros programas que tenham idiossincrasias semelhantes.

Sei que isso não está fora das diretrizes de interface do sistema operacional. Ou seja, reconheço que este não é um bug que será corrigido. Gostaria de saber se existe alguma maneira de fechar automaticamente aplicativos GUI selecionados que não têm janelas abertas.

wfaulk
fonte

Respostas:

22

Experimente o RedQuits:

O RedQuits está lá para ajudar se você já tentou fechar um aplicativo com seu botão vermelho e se perguntou por que ele ainda está aberto. Com o RedQuits, todos os programas são encerrados quando resta apenas uma janela para esse programa. Se você deseja sair e fechar todas as janelas abertas de um programa, basta desmarcar a opção "Sair apenas quando resta 1 janela para esse aplicativo". nas preferências.

msaied
fonte
3
O engraçado é que o RedQuits em si não desiste quando você pressiona o botão vermelho, diz isso nas instruções. É simples, o que é legal, mas não há lista branca.
Michael Ozeryansky
RedQuits fecha o aplicativo se você clicar no botão vermelho de saída, mas não ao fechar a última janela usando Cmd + W.
Sampo 23/04
23

Em resumo: Não.

--A resposta pára aqui. Tudo o que se segue é apenas minha tentativa de explicar o porquê.

O que você está enfrentando é a filosofia do Mac de como os aplicativos devem se comportar. Aqueles que estão fechados após a última janela desaparecer não estão se comportando de acordo com as Diretrizes de interface do Mac (embora haja muito por aí). // Edit: Isso não está totalmente correto, veja as postagens abaixo.

Tem sido assim desde o primeiro Mac System (em 1984). Acho que vai ficar conosco por mais 25 anos. Talvez os desenvolvedores de aplicativos nos permitam definir isso nas preferências.

Até lá, ajuda a se acostumar com o Command-Q (a tecla Apple eq) para sair de todos os aplicativos - e Command-W apenas para a janela ativa.

Lobo
fonte
1
Minha opinião pessoal como comentário: Trabalhando com as duas plataformas todos os dias: me acostumei. Não faz muita diferença e, como sempre, há dois lados. Enquanto o aplicativo está sendo executado, cada início subseqüente é super extremamente rápido. Esses aplicativos que eu uso de vez em quando também podem ser fechados logo após o uso. Eu me acostumei com o Apple-Q / Apple-W nos Macs muito mais rápido que o Alt-F4 / Strg-F4 nos Windowsers.
1111 Wolf
28
Também é possível pressionar Q ao usar a tecla Command para alternar entre aplicativos (mantendo o comando pressionado), para sair do aplicativo que está destacado no momento naquele alternador de aplicativos.
Arjan #
+1 para o comentário de Arjan. É uma maneira incrível de fechar um grande número de aplicativos de uma só vez. Você faz isso sempre que precisar liberar memória.
11339 Dan Rosenstark
2
O que realmente me aborreceu foi que aplicativos minimizados apareciam no alternador de aplicativos, mas não seriam restaurados se escolhê-los. Que eu achei muito inconsistente. Recentemente - após literalmente anos de uso - me deparei pressionando ALT enquanto a troca para o aplicativo (minimizado) a restauraria. Hooooray !!!
11119 Wolf
15
Para ser brutalmente honesto, não estou tão interessada em saber se o sintoma é normal ou não. Estou interessado em como se livrar do sintoma.
Wfaulk 12/10/09
3

Eu escrevi um aplicativo AppleScript para fazer isso por você.

Em resumo, ele verifica quais aplicativos estão abertos, oferece a opção de excluir os aplicativos da lista de permissões da saída automática e, a cada 60 segundos, sai de todos os aplicativos (isso é possível devido a limitações).

Para alterar a lista de permissões enquanto estiver em execução, clique no ícone no dock para que a caixa de diálogo de seleção reapareça.

Para sair, clique com o botão direito do mouse no ícone Dock e escolha "Sair"

Origem e aplicativo AppleScript: http://files.me.com/kioarthurdane/6kjl9k

dotHTM
fonte
Parece uma boa ideia, exceto que não funciona. Eu tive que alterar "nome" para "nome exibido" em refreshWindowedProcess () para impedir que ele perguntasse "onde está esse aplicativo", mas mesmo assim parece que ele nunca sai de nada.
Wfaulk 27/10/09
Qual versão do OS X você está usando? Escrevi meu script no Snow Leopard, sem saber se houve grandes alterações no AppleScript.
DotHTM 27/10/2009
Deixa pra lá, o OmniGraffle Pro acabou de fazer isso comigo. Muito engraçado nesses casos, o nome no Finder não é o nome real do arquivo ... Vou ver se consigo escrever uma correção usando os identificadores de pacote.
DotHTM 27/10/2009
Atualizado usando identificadores de pacote configurável em vez do nome do aplicativo (que pode ser diferente do nome do arquivo do aplicativo). Na fonte, há uma observação sobre duas linhas comentadas que reportarão a lista de janelas em cada identificador de pacote. Percebo que muitos aplicativos relatam ter pelo menos uma janela aberta, apesar de nenhuma janela visível estar aberta. O NetNewsWire é um desses aplicativos com uma longa lista de janelas, mesmo depois que a janela principal é "fechada". A Lista de ocorrências é outro aplicativo que mantém sua janela única sempre aberta.
DotHTM 27/10/2009
Contagem de Windows = 0 parece a maneira mais óbvia de detectar seu estado para sair, mas isso não parece funcionar com todos os aplicativos. Crie suas próprias condições para adicionar ao meu código. Como nem todos os aplicativos têm um dicionário AS, será difícil verificar esses aplicativos em busca de outras condições (quanto mais tempo para criar uma regra separada para cada um). Estou mais inclinado a concordar com as outras respostas dadas: "Faz parte da cultura Mac ter um aplicativo decapitado ainda em execução". A menos que esteja fazendo algo, não ocupará muita CPU ou RAM física.
DotHTM 27/10/2009
3

O recurso de terminação automática introduzido no 10.7 aborda parcialmente o de algumas aplicações.

Se você abrir a Visualização, abra pelo menos uma janela nela, feche todas as janelas e alterne para outro aplicativo, a Visualização está oculta no alternador de encaixe e aplicativo. Se você observar o Activity Monitor, o processo ainda está em execução e usa memória, mas pode haver algumas mudanças na forma como o processo é gerenciado.

O Mac App Programming Guide diz que os processos são realmente encerrados, então pode haver algo que esteja faltando.

  • O encerramento automático elimina a necessidade de os usuários saírem de um aplicativo. Em vez disso, o sistema gerencia a finalização do aplicativo de forma transparente nos bastidores, finalizando os aplicativos que não estão em uso para recuperar os recursos necessários, como memória.

[...]

A rescisão automática transfere o trabalho de gerenciar processos do usuário para o sistema, que está melhor equipado para lidar com o trabalho. Os usuários não precisam gerenciar processos manualmente de qualquer maneira. Tudo o que eles realmente precisam é executar aplicativos e disponibilizá-los quando precisarem. A terminação automática torna isso possível, garantindo que o desempenho do sistema não seja afetado adversamente.

Lri
fonte
1
A visualização certamente não desaparece automaticamente para mim nessas condições em 10.7.4.
wfaulk
Perdi o seu comentário anteriormente, mas isso acontece comigo em 10.8.2. Você abriu pelo menos uma janela (como abrir e fechar a janela de preferências) antes de ocultar a Visualização?
Lri
2

Outro aplicativo pequeno e simples gratuito, Quitter , exibe um ícone X na barra de bandejas que funciona exatamente como o botão de fechamento no Windows.

Andreas
fonte
4
Bem-vindo e obrigado por postar uma resposta! Você deve divulgar sua afiliação ao produto / blog vinculado. Não é geralmente um problema quando tudo é mantido acima da placa :)
JoshP
0

Substitua o seguinte método em NSApplicationDelegate(que normalmente retorna NO):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender
{
return YES;
}
Pierre Dufresne
fonte
Esta é uma pergunta sobre como os usuários podem fazer isso acontecer com aplicativos existentes, e não como um programador pode fazer com que seu programa faça isso. Obrigado pelo seu esforço, no entanto.
wfaulk