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

时间:2018-04-06 10:15:33

标签: swift nstableview nsmenu

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

我试过了:

validateMenuItem 

但它永远不会被称为

我尝试过NSMenuDelegate及其

func menuWillOpen(_ menu: NSMenu) { }

func menuNeedsUpdate(_ menu: NSMenu) { }

但是他们都没有返回任何我可以设置为DONT show menu IF ...

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

1 个答案:

答案 0 :(得分:0)

这很简单:

实施

NSMenuDelegate

并添加此方法:

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