如何在 NSPopUpButton 的子菜单中获取 NSMenuItem 的标题?

How can I get the title of a NSMenuItem in a submenu of a NSPopUpButton?

我可以在 NSPopUpButtonNSMenu 的顶层获取 NSMenuItem 的名称。

我通过向 NSPopUpButton:

添加一个动作来做到这一点
@IBAction func menuDropdownAction(_ sender: Any) {

    let titleOfSelectedItem = (sender as AnyObject).titleOfSelectedItem

    print (titleOfSelectedItem! as Any)
}

但是如果我向 NSMenu 添加子菜单,它只是 returns nil.

在我看来,应用于 NSPopUpButton.titleOfSelectedItem 应该适用于隐藏在其子菜单中的项目,但似乎不行!

任何帮助都将不胜感激,有一个类似的问题,但它对 cocoa 已有 10 多年的历史,对我没有用。 link

Swift 是一种强类型语言,您可以通过编写 AnyAnyObject.

来关心类型

sender替换为真实类型

@IBAction func menuDropdownAction(_ sender: NSPopUpButton) {

然后您可以访问弹出按钮的所有属性

    let titleOfSelectedItem = sender.titleOfSelectedItem
    let menu = sender.menu!
    let firstMenuItem = menu.item(at: 0)!
    let subMenu = firstMenuItem.submenu!