NSMenuItem更新标题

时间:2016-06-21 18:55:17

标签: swift nsmenuitem

我可以使用以下代码以编程方式创建菜单项。

primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))

我希望能够从此菜单项更新标题。当我使用Interface Building手动创建菜单时,我能够非常轻松地完成这项工作。

我没有办法识别菜单项。

2 个答案:

答案 0 :(得分:1)

存储对NSMenuItem的引用(例如在实例变量中),并在您希望的时候在其上设置标题:

let myMenu = NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")

primaryMenu.addItem(myMenu)

//somewhere else:
myMenu.title = "xyz"

答案 1 :(得分:1)

只需在类的顶层创建一个惰性实例化变量

lazy var mySpecialMenuItem : NSMenuItem = {
   return NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
}()

并将菜单项分配给变量

primaryMenu.addItem(mySpecialMenuItem)

现在您可以更改标题

mySpecialMenuItem.title = "Something Else"

惰性实例化变量的好处是它不会被初始化,直到它第一次被访问,你可以避免使用可选的或隐式的unwrapped变量。