如果选择了一行,则在 NSTableView 上显示菜单

Display menu on NSTableView if a row is selected

我在 NSTableView 的出口有一个菜单。当我右键单击 Table 视图时,它会显示菜单,但如果没有选择行,我不想显示菜单。当我右键单击并且没有选择行时,如何停止显示菜单?

我试过:

validateMenuItem 

但它从未被调用

我试过 NSMenuDelegate 及其

func menuWillOpen(_ menu: NSMenu) { }

func menuNeedsUpdate(_ menu: NSMenu) { }

但是 none 其中 return 任何我可以设置为不显示菜单的东西,如果...

建议的重复项要求在单击特定单元格时阻止显示上下文菜单。这个问题是关于在没有选择 ROW 时防止菜单显示的。

非常简单:

实施

NSMenuDelegate

并添加此方法:

func menuWillOpen(_ menu: NSMenu) {
        if myTableView.selectedRow < 0 {
            menu.cancelTrackingWithoutAnimation()
        }
    }