删除具有特定标签的 Nsmenu 项目
Delete Nsmenu item with specific tag
我用这个函数创建了一个NSMenuitems。他们都被标记为 2。
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)
}
我想以编程方式删除所有带有“2”标签的项目。我尝试使用 .itemWithTag 和 .indexOfItemWithTag。我似乎无法遍历列表。
let itemswithindex2 = computerInfoMenu.itemWithTag(2)
我找到了实现目标的方法。不确定这是最好的解决方案,但它确实有效。
for item in computerInfoMenu.itemArray
{
if (item.tag) == 2
{
computerInfoMenu.removeItem(item)
}
}
我用这个函数创建了一个NSMenuitems。他们都被标记为 2。
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)
}
我想以编程方式删除所有带有“2”标签的项目。我尝试使用 .itemWithTag 和 .indexOfItemWithTag。我似乎无法遍历列表。
let itemswithindex2 = computerInfoMenu.itemWithTag(2)
我找到了实现目标的方法。不确定这是最好的解决方案,但它确实有效。
for item in computerInfoMenu.itemArray
{
if (item.tag) == 2
{
computerInfoMenu.removeItem(item)
}
}