Ich habe aktuell ein NSTableView, in dem ich gerne mit den Arrow-Tasten navigieren würde.
Erfolgreich implementiert habe ich die Tab-Taste, mit der man ein Feld nach rechts springt und am Tabellenende eine Zeile nach unten, sowie ein "moveDown"
Alles anzeigen
Auf die gleiche Art und Weise wollte ich statt "insertTab" dann "moveLeft" und "moveUp" implementieren. Das funktioniert aber so überhaupt nicht
Zwar wird die Methode aufgerufen, reagiert aber völlig seltsam.
Bei "moveUp" schreibe ich :
Dann habe ich zwar das "ready to edit" Feld in der richtigen Reihe aber das Highlight im TableView ist eines weiter nach unten gegangen (siehe Bild im Anhang).
Irgendwas prinzipielles scheine ich wohl falsch zu verstehen.
Kann mir jemand sagen, wie ich das korrekt implementieren muss?
Hans
Erfolgreich implementiert habe ich die Tab-Taste, mit der man ein Feld nach rechts springt und am Tabellenende eine Zeile nach unten, sowie ein "moveDown"
Quellcode
- @objc func doClick(_ sender: AnyObject?) {
- if (sender?.identifier == "BlindbathTable" && blindBathTable.clickedColumn != 0 && blindBathTable.clickedColumn != 4) {
- blindBathTable.editColumn(blindBathTable.clickedColumn, row: blindBathTable.selectedRow, with: nil, select: true)
- }
- }
- if (control.identifier!.rawValue == "BlindbathTable" && commandSelector == #selector(NSStandardKeyBindingResponding.insertTab(_:)) && control.selectedCell()?.tag == 1 && selectedRow < 3) {
- blindBathTable.selectRowIndexes(indizes as IndexSet, byExtendingSelection: false)
- blindBathTable.editColumn(1, row: selectedRow, with: nil, select: true)
- else if (control.identifier!.rawValue == "BlindbathTable" && commandSelector ==
- #selector(NSStandardKeyBindingResponding.moveDown(_:)) && selectedRow < 3) {
- blindBathTable.selectRowIndexes(indizes as IndexSet, byExtendingSelection: false)
- blindBathTable.editColumn(1, row: selectedRow, with: nil, select: true)
- return true
- }
Auf die gleiche Art und Weise wollte ich statt "insertTab" dann "moveLeft" und "moveUp" implementieren. Das funktioniert aber so überhaupt nicht
Zwar wird die Methode aufgerufen, reagiert aber völlig seltsam.
Bei "moveUp" schreibe ich :
Quellcode
- else if (control.identifier!.rawValue == "BlindbathTable" && commandSelector ==
- #selector(NSStandardKeyBindingResponding.moveUp(_:))) {
- blindBathTable.selectRowIndexes(indizes as IndexSet, byExtendingSelection: false)
- blindBathTable.editColumn(1, row: selectedRow-2, with: nil, select: true)
- return true
- }
Irgendwas prinzipielles scheine ich wohl falsch zu verstehen.
Kann mir jemand sagen, wie ich das korrekt implementieren muss?
Hans