我想将一个上下文菜单放到NSTableView
上。这部分完成了。我要做的就是根据右键单元格的内容显示不同的菜单条目,而不显示特定列的上下文菜单。
这是:
第0列,第1列没有上下文菜单
所有其他单元格应该具有如下的上下文菜单:
第一个条目:“删除”samerow.column1.value 第二个条目:“保存”samecolumn.headertext
希望问题很清楚..
谢谢
-编辑-
右边的那个是上下文菜单对于任何给定单元格应该是什么样子。
这是我发现的自定义/动态NSMenu
最简单的方法,它也保留了系统外观(蓝色选择边框)。子类NSTableView
并在menu(for:)
设置菜单。
重要的是在表视图上设置菜单,但从super
调用返回菜单。
override func menu(for event: NSEvent) -> NSMenu? {
let point = convert(event.locationInWindow, from: nil)
let clickedRow = self.row(at: point)
var menuRows = selectedRowIndexes
// The blue selection box should always reflect the
// returned row indexes.
if menuRows.isEmpty || !menuRows.contains(clickedRow) {
menuRows = [clickedRow]
}
// Build your custom menu based on the menuRows indexes
self.menu = <#myMenu#>
return super.menu(for: event)
}