我需要为上传的图片实现“最近列表”,例如cloudapp或droplr。 因此,每当我上传图像时,都应该创建一个带有标题(或网址)的nsmenuitem。 应始终有最后5个上传的图像。 所以我想我需要一个plist,我可以保存最后5个图像(图像的标题),当菜单打开时,它应该加载最近的5.但我需要你的帮助,因为我不知道如何做到这一点。每当上传新图像时我都必须编辑plist,因此它位于plist的第一个位置,并且所有旧的entrow必须得到它们的索引+ 1.
我希望你理解我。你知道如何实现这个目标吗? 感谢
答案 0 :(得分:0)
虽然我不确定这是你真正想做的事情,但我不久前实现了类似的功能。对于我的情况,它只是用于文件,但也适用于你的情况(或至少告诉你一种方法)
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];
}
}