Segue on tableView.clickedRow macOS

Hey I am having difficulty segueing to a new viewController when a tableViewCell is selected. Please any help. Here is the code.



override func viewDidLoad() { super.viewDidLoad()

sidebarTableView.delegate = self
sidebarTableView.dataSource = self
sidebarTableView.rowHeight = 55.0
sidebarTableView.action = #selector(onItemClicked)
sidebarTableView.target = self
}
func numberOfRows(in tableView: NSTableView) -> Int {
return 6
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "sidebarCell"), owner: self) as! NSTableCellView? {
cell.imageView?.image = NSImage(named:cellData[row]["imageIcon"]!)
cell.textField?.stringValue = cellData[row]["string"]!
return cell
}
return nil
}

func tableView(_ tableView: NSTableView, didClick tableColumn: NSTableColumn) { onItemClicked() }

@objc private func onItemClicked() {
if let mainVC = view.window?.windowController as? MainWindowViewController {
mainVC.segueToHome()
}
print("row \(sidebarTableView.clickedRow), col \(sidebarTableView.clickedColumn) clicked")
}

What is this didClick method ? That is not a delegate method.


Do you want to select a column or a cell ?

Why don't you use didSelect instead ?


    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if let mainVC = view.window?.windowController as? MainWindowViewController {
          mainVC.performSegue(withIdentifier: "segueToHomeIdentifier", sender: mainVC)
        }
         print("row \(indexPath.row), col \(indexPath.column) clicked")
}   
Segue on tableView.clickedRow macOS
 
 
Q