2016-07-21 1 views
1

J'utilise cette fonction pour créer un NSMenuitems. Ils sont tous marqués avec 2.Supprimer l'élément Nsmenu avec l'étiquette spécifique

func addToComputerInfoMenu (title: String) 
{ 
    let addToComputerItem : NSMenuItem = NSMenuItem(title: "\(title)" , action: #selector(openWindow), keyEquivalent: "") 

    addToComputerItem.attributedTitle = NSAttributedString(string: "\(title)", attributes: [NSFontAttributeName: NSFont.systemFontOfSize(14), NSForegroundColorAttributeName: NSColor.blackColor()]) 
    addToComputerItem.tag = 2 
    addToComputerItem.enabled = true 
    computerInfoMenu.addItem(addToComputerItem) 
} 

Je voudrais supprimer par programme tous les éléments avec la balise "2". J'ai essayé d'utiliser .itemWithTag et .indexOfItemWithTag. Je n'arrive pas à parcourir la liste.

let itemswithindex2 = computerInfoMenu.itemWithTag(2) 

Répondre

0

J'ai trouvé un moyen d'atteindre mon objectif. Pas sûr que ce soit la meilleure solution, mais cela fonctionne.

for item in computerInfoMenu.itemArray 
    { 
     if (item.tag) == 2 
     { 
      computerInfoMenu.removeItem(item) 
     } 
    }