NSMenuItem 更新标题
NSMenuItem updating title
我可以使用以下代码以编程方式创建菜单项。
primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))
我希望能够从此菜单项更新标题。当我使用 Interface Building 手动创建菜单时,我已经能够非常轻松地做到这一点。
我无法识别菜单项。
存储对 NSMenuItem
的引用(例如在实例变量中),并在需要时为其设置标题:
let myMenu = NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
primaryMenu.addItem(myMenu)
//somewhere else:
myMenu.title = "xyz"
只需在 class
的顶层创建一个惰性实例化变量
lazy var mySpecialMenuItem : NSMenuItem = {
return NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
}()
并将菜单项分配给变量
primaryMenu.addItem(mySpecialMenuItem)
现在您可以更改标题
mySpecialMenuItem.title = "Something Else"
惰性实例化变量的好处是它在第一次访问之前不会被初始化,并且您可以避免可选或隐式解包可选。
我可以使用以下代码以编程方式创建菜单项。
primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: ""))
我希望能够从此菜单项更新标题。当我使用 Interface Building 手动创建菜单时,我已经能够非常轻松地做到这一点。
我无法识别菜单项。
存储对 NSMenuItem
的引用(例如在实例变量中),并在需要时为其设置标题:
let myMenu = NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
primaryMenu.addItem(myMenu)
//somewhere else:
myMenu.title = "xyz"
只需在 class
的顶层创建一个惰性实例化变量lazy var mySpecialMenuItem : NSMenuItem = {
return NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent: "")
}()
并将菜单项分配给变量
primaryMenu.addItem(mySpecialMenuItem)
现在您可以更改标题
mySpecialMenuItem.title = "Something Else"
惰性实例化变量的好处是它在第一次访问之前不会被初始化,并且您可以避免可选或隐式解包可选。