次にデフォルトアプリケーションを一番上にくるようにする。デフォルトアプリは Launch Services API の LSGetApplicationForURL が使える。
こんな感じ。
FSRef outAppRef;
NSURL* default_url;
LSGetApplicationForURL((CFURLRef)target_url, kLSRolesAll, &outAppRef, (CFURLRef*)&default_url);
セパレータ(NSMenuItem#separatorItem)も入れてできあがり。
サンプル:FindingAllApps-3.zip
- - - -
ファインダの「このアプリケーションで開く」では、デフォルトアプリに「(デフォルト)」と入れたり、同じアプリケーション名称が存在する場合(図の Firefox)はバージョン番号を加えたりとなかなか芸が細かい。