将NSMenu添加到右键单击弹出的NSTableCellView

时间:2017-01-27 22:10:02

标签: swift nstableview nsmenu nsmenuitem nstablecellview

当用户右键点击NSMenu内的NSTableCellView时,我想弹出NSTableView

let cell = myTableView.make(withIdentifier: "myCustomTableCellView", owner: self) as! MyTableCellView // subclass of NSTableCellView

let menu = NSMenu()
menu.autoenablesItems = false
menu.addItem(NSMenuItem(title: "Test", action: nil, keyEquivalent: ""))

cell.menu = menu

但是如果用户点击单元格,则菜单不会弹出。

我找不到任何sendActionOn方法或类似的东西。

如果有人可以提供帮助,那会很棒!

1 个答案:

答案 0 :(得分:3)

无需做任何花哨的事情。您可以在Interface Builder中设计菜单。

  1. Menu从对象库拖到View Controller
  2. Table View按住Ctrl键拖动到此菜单,然后将其连接到menu商店
  3. Connect Table View to Menu

    1. 将菜单项与IBActions
    2. 中的View Controller相关联

      假设你的右键菜单有3个动作

      @IBAction func menuAction1(_ sender: Any) {
          print("You clicked Item 1 for row \(self.tableView.selectedRow)")
      }
      
      @IBAction func menuAction2(_ sender: Any) {
          print("You clicked Item 2 for row \(self.tableView.selectedRow)")
      }
      
      @IBAction func menuAction3(_ sender: Any) {
          print("You clicked Item 3 for row \(self.tableView.selectedRow)")
      }