MacのStatusBar Applicationのつくりかた
Macのメニューバーの右側,spotlightとかがあるところはStatusBarと呼ぶらしい. StatusBarに常駐し,Dockには特にアイコンが現れないアプリをStatusBar Applicationと呼ぶ.Windowsでも同じだけど.
ふと思い立ってStatusBar Applicationの作り方を調べてみた.
XcodeからNew Project -> Cocoa Applicationを選択.
AppDelegate.hに以下を追加
@property (assign) IBOutlet NSMenu *statusMenu; @property (strong, nonatomic) NSStatusItem *statusItem;
statusMenuとIBOutletの接続しておく.
MainMenu.xibにMenuを追加. 追加したMenuは3つアイテムを持っているのでそのうちの一つをQuitに変更. Interface BuilderのドックのApplicationのterminate:に接続しておく. 不要なxibのwindowオブジェクトは削除しておく(とっておいても構わない).
AppDelegate.mのapplicationDidFinishLaunchingに以下を追加.
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initialize your application _statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; [_statusItem setTitle:@"StatusBar"]; [_statusItem setHighlightMode:YES]; [_statusItem setMenu:self.statusMenu]; }
plistにApplication is agent (UIElement) を追加.ValueをYESに.こうすることでアプリははバックグラウンド動作するようになる.