2012-07-12 38 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]; 
    } 
}