Handling NSTableView(view-based) Tab Key on Sierra and High Sierra

I try to control tab key in NSTableView(view-based) on Sierra and High Sierra and I also override the controlTextDidEndEditing function.

But It does't work.

Could anybody give me an advice.

thanks!

override func controlTextDidEndEditing(_ notification: Notification) {
   guard let textField = notification.object as? NSTextField,
        let textMovement = notification.userInfo?["NSTextMovement"] as? Int else {
            return
    }
    let editedColumn = self.column(for: textField)
    let editedRow = self.row(for: textField)
    let theRow = self.numberOfRows - 1           //last row
    let theColumn = self.numberOfColumns - 1     //last column
    if textMovement == NSTabTextMovement && editedRow != -1 && editedRow < theRow {
        if editedColumn == theColumn {
            if editedRow == theRow {
                //Go to the first row
                self.selectRowIndexes(IndexSet(integer: 0), byExtendingSelection: false)
                editColumn(1, row: 0, with: nil, select: true)
            } else {
                //Go to the next row
                selectRowIndexes(IndexSet(integer: editedRow + 1), byExtendingSelection:
                editColumn(1, row: editedRow + 1, with: nil, select: true)
            }
        }
    }
}
Handling NSTableView(view-based) Tab Key on Sierra and High Sierra
 
 
Q