iPodが接続されたのを検知する

ListenToTheNewsicでは,iPodが接続(正確にはマウント)されたのを検知して,iPodリスト(正確にはポップアップボタン)に表示し,アンマウントを検知してリストから取り除いている。

参考にしたのは以下。

これだけだと(関数を実行したときに検出することはできても)マウント・アンマウントの検知まではできないので,同じくNSWorkspaceクラスの

NSWorkspaceDidMountNotification
NSWorkspaceDidUnmountNotification

の2つを受け取れるようにしておき,マウント時にiPodかどうかを上記の記事のように判定している。

ちなみにアンマウント後に来る通知のタイミングでは(当然のことながら)そのボリュームにどんなファイルがあるか調べることができない。
起動時およびボリュームがマウントされるたびに,それがiPodのボリュームかどうか調べて覚えておき,アンマウント時にはその情報で判断した。

その辺を扱うクラス(CNWiPodWatcher)のソースもアップロード。