EDIT:これは素敵な既製のメニューバーアプリケーションである、ここで(githubのソースこれで)答え。
メニューバーアプリケーションの作り方を知りたくて、そのための要件は何ですか?
メニューバーのシンプルなアプリケーションが、ブラウザを使用してリンクを開くことであるのを見ました。それに似たものを作成したいと思います。
これは、私が同様に作成したいアプリケーションです。
EDIT:これは素敵な既製のメニューバーアプリケーションである、ここで(githubのソースこれで)答え。
メニューバーアプリケーションの作り方を知りたくて、そのための要件は何ですか?
メニューバーのシンプルなアプリケーションが、ブラウザを使用してリンクを開くことであるのを見ました。それに似たものを作成したいと思います。
これは、私が同様に作成したいアプリケーションです。
回答:
NSStatusItemはあなたが探しているものです。また、文字列値1のLSUIElementをInfo.plistに追加して、Dockから非表示にします。
Codeboxのポップアップが優れた出発点であることがわかりました。Githubでのforkに適しています。
それはうまく機能しますが、彼らは自分のサイトに注意しています...
PSライオンでは、AppleはiOSのようなポップオーバー用の新しいクラスを追加しています。したがって、OS X 10.7がリリースされた後は、可能な場合はネイティブCocoaクラスに依存することをお勧めします。他の場合では、Popupプロジェクトはまだ使用可能です。
BitBarはGitHub上のアプリケーションで、「Mac OS Xメニューバーに何でも置く」ことができます。
シェルまたは他の実行可能スクリプト(プラグインと呼ばれる-プラグインリポジトリの多くの例を参照)を実行し、メニューバーに結果を表示します。独自のプラグインを作成して、「プラグインフォルダー」に追加するだけで実行できます。情報を表示するだけでなく、定義済みのプラグインメニューから定義済みのbashスクリプトをインタラクティブに実行することもできます。
私が最初にこの回答を投稿して以来、その人気は爆発的に増加し(現在52人の貢献者)、独自のプラグインをパッケージ化できる配布可能なバージョンもあります。
ビットコインのライブ価格を表示する非常にシンプルな(非インタラクティブ)例:
Apple がYosemiteにNSStatusBarButton
プロパティを追加しNSStatusItem
たので、メニューバーアプリをより簡単に実装できます。githubにサンプルプロジェクトを作成しました。
FlyCutは、これを行うもう1つの優れたオープンソースアプリケーションです。(MITライセンス。)非常に便利で、1日に数回使用します。
これは関連があるように見えるいくつかのコードです:
// Flycut/AppController.h
IBOutlet NSMenu *jcMenu;
// Flycut/AppController.m
statusItem = [[[NSStatusBar systemStatusBar]
statusItemWithLength:NSVariableStatusItemLength] retain];
[statusItem setHighlightMode:YES];
if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 1 ) {
[statusItem setTitle:[NSString stringWithFormat:@"%C",0x2704]];
} else if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 2 ) {
[statusItem setTitle:[NSString stringWithFormat:@"%C",0x2702]];
} else {
[statusItem setImage:[NSImage imageNamed:@"com.generalarcade.flycut.16.png"]];
}
[statusItem setMenu:jcMenu];
[statusItem setEnabled:YES];
Mail Notifrは、もう1つのオープンソースのメニューバーアプリです。特に、ログイン時にオープンを実装する方法を理解する必要がある場合に、私はたくさんの助けとなりました。App Storeでも入手できます。