4

我想NSMenu在用户右键单击 aNSTableCellView中的 a 时弹出 a 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方法或类似的东西。

如果有人可以提供帮助,那就太好了!

4

1 回答 1

7

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

  1. 将 aMenu从对象库拖到您的视图控制器
  2. 按住 Ctrl 键从Table View到此菜单并将其连接到menu插座

将表格视图连接到菜单

  1. 将菜单项与IBActions您的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)")
}
于 2017-01-28T17:22:03.580 回答