私は経験豊富な C/C++ プログラマーですが、ObjC++ は初めてです。Mac OSX プロジェクトで NSWorkspacedidmountnofification をキャッチしようとしています。
アプリのデリゲート インターフェイスにコールバックを追加しました。
- (void)mediaMounted:(NSNotification *)notification;
実装には以下が含まれます
- (void)mediaMounted:(NSNotification *)aNotification {
NSLog(@"mediaMounted volume change.");
}
applicationDidFinishLaunching で、自分自身を通知センターに追加します。
NSNotificationCenter* ncenter = [[NSWorkspace sharedWorkspace] notificationCenter];
[ncenter addObserver: self
selector: @selector(mediaMounted)
name: NSWorkspaceDidMountNotification
object: nil];
ただし、ディスクを実行してマウントすると、次のように表示されます。
2012-08-29 09:52:31.753 OSN[2203:903] -[OSNAppDelegate mediaMounted]: unrecognized selector sent to instance 0x101340af0
2012-08-29 09:52:31.756 OSN[2203:903] -[OSNAppDelegate mediaMounted]: unrecognized selector sent to instance 0x101340af0
インスタンス 0x101340af0 が自分の OSNAppDelegate であることを確認しましたが、セレクターが認識されるようにするために他に何をする必要があるのか わかりません。