2011-06-18 9 views
1

私はメニューバーアプリケーションで作業しています。アイコンがドックに表示されないようにLSUIElementを追加しました。また、メニューバーの左にあるファイル、編集、ビューなどを削除することもできます)。メニューバーアプリケーションがDockアイコン(Mac OS X)によって起動されています

問題は、アイコンでアプリケーションを起動し、LSUIElementを追加することによってアプリをluanchにする唯一の方法がxcodeであることです。

私は、Mac app Caffieneではアイコンで起動しますが、実行しているドックには表示されていないことがわかりました。

だから私は皆さんがこれを行う方法を知っているのだろうかと思っていました。

ありがとうございます!あなたがドックアイコンを持っていますが、Dockに実行されているようアプリを表示しないようにしたい場合は

+1

確かに、アプリケーションをビルドして/ Applicationsフォルダに入れて起動するだけでしょうか? – rdougan

答えて

0

、単に二つのアプリケーションを作成します。

ステータスメニューアプリケーション

これは設定し、実際のアプリケーションであり、アプリケーションのロジックが含まれています。それはLSUIElementが設定されています。

ランチャーアプリケーション

このアプリケーションは、ドックアイコンを有しています。バンドルにステータスメニューアプリケーションが含まれています。その唯一の仕事は、ステータスメニューアプリケーションを起動してから終了することです。

+0

ランチャーアプリケーションの作成方法のサンプルコードはありますか? – Tapy

+0

@Sweppiそれについては何も気にしない...あなたが望むアイコンで新しいCocoaアプリを作成し、あなたが起動させたい他のアプリをそのバンドルに入れて、ランチャーアプリが起動されたら、 (例えば、 ' - [NSWorkspace launchApplicationAtURL:options:configuration:error:]')を起動し、ランチャーアプリを終了します。 – puzzle

+0

ビルドされたアプリケーションまたはプロジェクトと、バンドルに追加されるすべてのものでなければなりませんか?それがビルドのみの場合、どこで見つけるのですか?私はiOSアプリケーションのように、プロジェクトフォルダの中にビルドフォルダや何かを見つけることができません。 残念ながら、私はまだ学んでいます:( – Tapy

0

別のランチャーアプリを作成せずにこれを行うには本当に簡単な方法があります。ステータス項目を持つアプリケーションをアプリケーションバンドルとしてビルドします。アプリがDockに表示またはべきでない場合はその後、

Key: NSUIElement 
Value: Number, 1 or Boolean True 

アプリケーションのInfo.plistファイルにエントリを追加NSUIElementはOSXを伝えます。

関連する問題