ページ

2008年8月13日水曜日

アプリケーション起動完了を捉える

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

Dashboardの起動完了をどう取るか。NSWorkspaceでアプリケーションを起動した場合、NSWorkspaceDidLaunchApplicationNotification という通知を受け取れるようだ。

まず notificationCenter へ通知受取先を登録する。

[[[NSWorkspace sharedWorkspace] notificationCenter]
addObserver:self selector:@selector(didLaunchApplication:)
name:NSWorkspaceDidLaunchApplicationNotification object:nil];


通知を受け取るメソッド。ここでは通知内容をログへ表示する。
- (void)didLaunchApplication:(NSNotification *)notification
{
NSLog(@"%@", notification);
}



試してみる。辞書(Dictionary.app)を起動すると下記の通知が来た。
SimpleCap[9476:10b] NSConcreteNotification 0x1a2ea0 {name = NSWorkspaceDidLaunchApplicationNotification; object = ; userInfo = {
NSApplicationBundleIdentifier = "com.apple.Dictionary";
NSApplicationName = "\U8f9e\U66f8";
NSApplicationPath = "/Applications/Dictionary.app";
NSApplicationProcessIdentifier = 9480;
NSApplicationProcessSerialNumberHigh = 0;
NSApplicationProcessSerialNumberLow = 2650759;
}}


よしDashboardは?....通知が来ない。元々常駐しているからか?

さてどうしたものか。