最後のウィンドウが閉じた後にMac OS Xアプリケーションを閉じるようにする


45

私はそれが単なるペットの忍耐であることを知っていますが、ウィンドウが開いていないときにMac OS XのPreview.appが開いたままになるのは嫌です。最後のウィンドウが閉じられたときに閉じる方法はありますか?

Previewの中にそれを実現するオプションが表示されないので、答えは同様の…特異性を持つ他のプログラムにも適用できると思います。

これはOSのインターフェイスガイドラインの範囲外ではないことを理解しています。つまり、これは修正されるバグではないことを認識しています。ウィンドウが開いていない選択したGUIアプリケーションを自動的に閉じる方法があるかどうか疑問に思っています。

回答:


22

RedQuitsを試してください

RedQuitsは、赤いボタンでアプリケーションを閉じようとして、なぜ開いているのか疑問に思ったことがある場合に役立ちます。RedQuitsを使用すると、そのプログラム用のウィンドウが1つしか残っていない場合、すべてのプログラムが終了します。プログラムの開いているすべてのウィンドウを終了して閉じる場合は、「そのアプリに1つのウィンドウが残っている場合にのみ終了する」のチェックを外します。環境設定で。


3
面白いのは、赤いボタンを押してもRedQuits自体が終了しないということです。シンプルですが、これは素晴らしいことですが、ホワイトリストはありません。
マイケルオゼリャンスキー

赤い終了ボタンをクリックすると、RedQuitsはアプリケーションを閉じますが、Cmd + Wを使用して最後のウィンドウを閉じるときは閉じません。
サンポ

23

要するに:いいえ。

-答えはここで終わります。以下はすべて、その理由を説明するための私の試みです。

あなたが経験しているのは、アプリケーションの振る舞いに関するMacの哲学です。最後のウィンドウが消えた後に閉じられた人、Macインターフェイスガイドラインに準拠していません(ただし、まだたくさんあります)。//編集:これは完全に正しいわけではありません。以下の投稿を参照してください。

最初のMacシステム(1984年)以来、そのようになっています。今後25年間は私たちと一緒にいると思います。たぶん、アプリの開発者は設定でそれを設定できるでしょう。

それまでは、Command-Q(Appleキーとq)に慣れてすべてのアプリを終了するのに役立ちます-Command-Wはアクティブなウィンドウに対してのみです。


1
コメントとしての私の個人的な意見:毎日両方のプラットフォームで作業する:私はそれに慣れました。それほど違いはありませんし、いつものように、2つの側面があります。アプリの実行中、後続の各起動は非常に高速です。時々使用するアプリは、使用した直後に閉じることもできます。MacでApple-Q / Apple-Wに慣れたのは、WindowserでAlt-F4 / Strg-F4よりもはるかに高速でした。
ウルフ

28
Command-Tabを使用してアプリケーションを切り替えながら(したがって、Commandを押しながら)Qを押すと、そのアプリケーションスイッチャーで現在強調表示されているアプリケーションを終了できます。
アルジャン

Arjanのコメントについては+1。膨大な数のアプリを一度に閉じる素晴らしい方法です。メモリを解放する必要があるときはいつでもこれを行います。
ダンローゼンスターク

2
本当にイライラさせられたのは、最小化されたアプリがアプリスイッチャーに表示されたが、それらを選択しても復元されないことでした。私は非常に矛盾していることを発見した。つい最近-文字通り何年も使用した後-(最小化された)アプリに切り替えるとALTを押すと復元されました。やったー!
ウルフ

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

アプリケーション名(アプリケーションのファイル名と異なる場合があります)の代わりにバンドル識別子を使用して更新されました。ソースには、各バンドル識別子のウィンドウのリストを報告する2行のコメントアウトに関するメモがあります。多くのアプリケーションでは、表示されているウィンドウが開いていないにもかかわらず、少なくとも1つのウィンドウが開いていると報告されています。NetNewsWireは、メインウィンドウが「閉じた」後でもウィンドウの長いリストを持つそのようなアプリの1つです。ヒットリストは、単一ウィンドウが常に開いていることを保持する別のアプリです。
dotHTM

Windowsのカウント= 0は、終了の状態を検出する最も明白な方法のように見えますが、これはすべてのアプリの仕事をするようには見えません。私のコードに追加する独自の条件を考え出します。すべてのアプリケーションにASディクショナリがあるわけではないので、それらのアプリを他の条件でチェックするのは困難です(それぞれに個別のルールを作成するのに時間がかかるのは言うまでもありません)。「ヘッドレスアプリケーションを実行し続けることはMac文化の一部です」という他の回答に同意する傾向があります。何かをしていなければ、CPUや物理RAMを大量に消費することはありません。
dotHTM

3

10.7で導入された自動終了機能は、一部のアプリケーションの一部に対応しています。

プレビューを開いて、少なくとも1つのウィンドウを開き、すべてのウィンドウを閉じて、別のアプリケーションに切り替えると、プレビューはDockおよびアプリケーションスイッチャーから非表示になります。アクティビティモニターを見ると、プロセスはまだ実行されており、メモリを使用していますが、プロセスの管理方法にいくつかの変更がある可能性があります。

プログラミングガイドマックのAppは、プロセスが実際に終了しているので、私は欠けている何かがあるかもしれないと述べています。

  • 自動終了により、ユーザーがアプリを終了する必要がなくなります。代わりに、システムはアプリの終了をバックグラウンドで透過的に管理し、使用されていないアプリを終了して、メモリなどの必要なリソースを回収します。

[...]

自動終了は、プロセスを管理するジョブをユーザーからシステムに転送します。システムは、ジョブを処理するための設備が整っています。ユーザーは、とにかくプロセスを手動で管理する必要はありません。本当に必要なのは、アプリを実行し、必要なときにそれらのアプリを利用可能にすることです。自動終了により、システムのパフォーマンスに悪影響が及ばないようにします。


1
10.7.4のこれらの条件下では、プレビューが自動的に消えることはありません。
wfaulkが

私は以前あなたのコメントを逃しましたが、10.8.2で私にとってはそうではありません。プレビューを非表示にする前に、少なくとも1つのウィンドウ(設定ウィンドウを開いたり閉じたりするなど)を開いていましたか?
Lri

2

もう1つの無料の小さくてシンプルなアプリ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.