これがあなたが実際にやりたいことかどうかはわかりませんが、私は少し前に同様の機能を実装しました。私の場合、それはファイル用でしたが、あなたの場合でも機能するはずです(または、少なくともそれを行う方法を1つ示します)
void populateRecentList(const char** files)
{
NSMenu* fileMenu = [[[NSApp mainMenu] itemWithTitle:@"File"] submenu];
NSMenu* recentItems = [[fileMenu itemWithTitle:@"Recent Files"] submenu];
[recentItems removeAllItems];
for (int i = 0; i < 4; ++i)
{
const char* filename = files[i];
NSString* name = [NSString stringWithUTF8String: filename];
NSMenuItem* newItem = [[NSMenuItem alloc] initWithTitle:name action:@selector(onRecentFile:) keyEquivalent:@""];
[newItem setTag:i];
[newItem setRepresentedObject:[NSString stringWithFormat:@"%d",i]];
[newItem setKeyEquivalentModifierMask: NSCommandKeyMask];
[newItem setKeyEquivalent:[NSString stringWithFormat:@"%d",i + 1]];
[recentItems addItem:newItem];
[newItem release];
}
}