NSMenuの表示直前に処理をする
メニューの中身がなにか別のデータに依存していて、そのデータの変更が結構頻繁だったりして、データ変更があるたびにメニューの中身を書き換えなくちゃいけなくて、それだったらメニューを表示する時(正確には表示する直前)に毎回データの中身をチェックしたほうがいいんじゃないの?っていう場合に便利なデリゲートがあります。
// NSMenu -(void) menuNeedsUpdate:(NSMenu*)menu;
デリゲートなので、事前にそのメニューに対してデリゲートを指定しておけば、表示するタイミングでこのメソッドが呼ばれます。なんで、そこでメニューの書き換えなんかをしてしまえば、常に最新の状態に保たれる、というわけ。
例えば、1つのメニューリソースを2ヶ所以上(メインメニューとコンテキストメニュー、とか)の場所でメニューとして表示させたい時なんかにも便利。