下記のサンプルコードを見てらえるとわかりますが、Table ViewのActionをclickという名前で追加しています。
引数はNSTableViewにしないとクリックされたセルの位置が分かりません。
やることは簡単なのですが、クリックされた行と列の位置を取得して、データの行(カラムのヘッダーは行が-1です)か、URLの入った列かをチェックして
その上でURLを取得して、NSWorkspace.shared.open()で開きます。
@IBAction func click(_ sender: NSTableView) { let iRow = sender.clickedRow let iCol = sender.clickedColumn //URLの入っているカラムかをチェックする。 if iCol != COL_URL { return } //カラムのヘッダーをクリックされるとiRowは-1になるので。 if iRow < 0 { return } //URLをクリックされたら、デフォルトのブラウザで開く処理 //myListは、構造体のリストでプロパティにurlを持っています。 //このやり方だとTable Viewがソートされていると上手くいかないです。 let tempUrl: String = self.myList[iRow].url let myUrl = URL(string: tempUrl)! if iCol == COL_URL { //デフォルトのブラウザで開きます。 NSWorkspace.shared.open(myUrl) } }