2011-06-30 5 views
1

プロセスリスト(ポップアップボタン内)を取得する方法は、ユーザーがアプリケーションを選択すると、アプリケーションを非表示/終了/最小化/終了できますか?プロセスリストの取得と特定のアプリケーションの非表示

+0

これは非常に長いポップアップメニューです。 (Instrumentsはこれを非常にうまく示しています。)代わりに、プロセスをテーブルビューにリストすることを検討するかもしれません。 –

+1

私は気にしないでください – ProSay

答えて

2

-[NSWorkspace runningApplications]は、現在実行中のプロセスを表すNSRunningApplicationNSArrayインスタンスを提供します。私は、プログラムがそのリストから除外される原因を正確には分かっていませんが、ユーザーがFinderから起動したアプリケーションは含まれています。また、面倒なアプリケーションだけでなく、混乱したくない2つのもの(Finder自体とloginwindowプロセス)も含まれています。

filteredArrayWithPredicate:を使用してフィルタリングすることができます。保持するオブジェクトにactivationPolicyNSApplicationActivationPolicyRegularとなっています。

アレイがフィルタリングされたら、bundleIdentifierbundleURL、またはlocalizedNameを使用して検索して、目的のアプリを見つけることができます。次に、hideまたはterminateを、あなたが好きなようにNSRunningApplicationインスタンスに送信します。

Appleには、このすべてをデモするサンプルプロジェクトAppListがあります。

関連する問題