我可以使用以下代码以编程方式创建菜单项。
primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))
我希望能够从此菜单项更新标题。当我使用Interface Building手动创建菜单时,我能够非常轻松地完成这项工作。
我没有办法识别菜单项。
答案 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变量。