0

NSWorkspace と fullPathForApplication を使用しようとしましたが、正しいアプリケーションが返されないため、これは私のニーズを満たしていません。

私はそれをできた:

[NSBundle bundleWithPath: [[NSWorkspace sharedWorkspace] fullPathForApplication: @"My Application"]];

そして、これは(私が信じている)最近インストールされたものを返します:

/Applications/My Application
/Applications/My Application 2

「マイアプリ」を返却してほしいのですが、2つ目が返却されています。すべてのアプリケーションが /Applications/ にインストールされているとは想定したくないので、フォルダーをループするだけではありません。

すべてのアプリケーションを手動でループして、どれが正しいかを確認する方法を知っている人はいますか? または、ランダムに1つを選択するのではなく、すべての結果を返すfullPathForApplicationと同様の方法ですか?

4

1 に答える 1

1

あなたが使用している NSWorkspace メソッドは のファサードであると思います。LSFindApplicationForInfo()これは、単一のアプリケーションのみを返すように文書化されています。

指定された特性に一致するアプリケーションが複数見つかった場合、Launch Services は、アイテムを開くための優先アプリケーションを検索する場合と同じ方法で 1 つを選択します。

アプリが特定のファイル タイプまたは URL を開く場合LSCopyApplicationURLsForURL()は、一致するアプリの配列を返す を使用します。

于 2013-04-04T15:52:20.117 に答える