2012-07-12 47 views
0

我需要实现上传图像的“最近列表”,比如在cloudapp或droplr中。 因此,只要我上传图片,它应该创建一个带有标题(或网址)的nsmenuitem。 应该总是有最后5个上传的图像。 所以我想我需要一个plist,在那里我可以保存最后5张图像(图像标题),并且当菜单打开时它应该加载最近的5个。但是我需要一些帮助,因为我不知道该怎么做它。每次上传新图像时,我都必须编辑plist,因此它位于plist的第一位,所有旧的entrys将不得不索引+1。NSMenu - 最近的列表

我希望你能理解我。你有一个想法如何实现这一目标? 谢谢

回答

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]; 
    } 
}