我可以使用以下代码以编程方式创建菜单项。
primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))
我希望能够从这个菜单项中更新标题。当我使用Interface手动创建菜单时,我已经能够非常容易地做到这一点。
我没有办法识别菜单项。
发布于 2016-06-21 19:03:00
存储对NSMenuItem的引用(例如在实例变量中),并随时设置标题:
let myMenu = NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
primaryMenu.addItem(myMenu)
//somewhere else:
myMenu.title = "xyz"发布于 2016-06-21 19:04:38
只需在类的顶层创建一个延迟实例化变量即可。
lazy var mySpecialMenuItem : NSMenuItem = {
return NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
}()并将菜单项分配给变量。
primaryMenu.addItem(mySpecialMenuItem)现在您可以更改标题了
mySpecialMenuItem.title = "Something Else"惰性实例化变量的好处是,在第一次访问变量之前不会对其进行初始化,并且可以避免可选或隐式未包装的可选选项。
https://stackoverflow.com/questions/37952440
复制相似问题