0

我需要为在 cloudapp 或 droplr 中上传的图像实现一个“最近列表”。因此,每当我上传图像时,它应该创建一个带有标题(或 url)的 nsmenuitem。应该总是有最后 5 个上传的图像。所以我想我需要一个可以保存最后 5 张图像(图像标题)的 plist,当打开菜单时,它应该加载最近的 5 张。但我需要你的帮助,因为我不知道该怎么做. 每当上传新图像时,我都必须编辑 plist,使其位于 plist 中的第一位,并且所有旧条目都必须获得它们的 index+1。

我希望你能理解我。你知道如何实现这一目标吗?谢谢

4

1 回答 1

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];
    }
}
于 2013-01-03T09:03:50.970 回答