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)
}
}
}
}