Skip to content

Commit 9f78949

Browse files
committed
Wohoo works 🎉🚀
1 parent b004e50 commit 9f78949

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

TableViewDemo/ViewController.swift

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,28 @@ class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelega
1515

1616
@IBOutlet weak var table: NSTableView!
1717
var dreams = defaults[.dreams]
18+
var selectedRow:Int = 0
1819

1920
override func viewDidLoad() {
2021
super.viewDidLoad()
2122
table.dataSource = self
2223
table.delegate = self
2324
}
25+
26+
override var acceptsFirstResponder : Bool {
27+
return true
28+
}
29+
30+
override func keyDown(with theEvent: NSEvent) {
31+
if theEvent.keyCode == 51 {
32+
removeDream()
33+
}
34+
}
35+
36+
func tableViewSelectionDidChange(_ notification: Notification) {
37+
let table = notification.object as! NSTableView
38+
selectedRow = table.selectedRow
39+
}
2440

2541
func numberOfRows(in tableView: NSTableView) -> Int {
2642
return dreams.count
@@ -38,21 +54,26 @@ class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelega
3854
}
3955

4056
@IBAction func removeTableRow(_ sender: Any) {
41-
print(sender)
42-
// removeDream()
57+
removeDream()
4358
}
4459

4560
func addNewDream() {
46-
dreams.append("Double Click or Press Enter to Add Workout")
61+
dreams.append("Double Click or Press Enter to Add Item")
4762
table.beginUpdates()
48-
table.insertRows(at: IndexSet(integer: dreams.count - 1), withAnimation: .effectFade)
63+
let last = dreams.count - 1
64+
table.insertRows(at: IndexSet(integer: last), withAnimation: .effectFade)
65+
table.scrollRowToVisible(last)
66+
table.selectRowIndexes([last], byExtendingSelection: false)
4967
table.endUpdates()
5068
}
5169

5270
func removeDream() {
53-
dreams.remove(at: 0)
71+
if selectedRow >= dreams.count {
72+
selectedRow = dreams.count - 1
73+
}
74+
if selectedRow != -1 {
75+
dreams.remove(at: selectedRow)
76+
table.removeRows(at: IndexSet(integer: selectedRow), withAnimation: .effectFade)
77+
}
5478
}
5579
}
56-
57-
58-

0 commit comments

Comments
 (0)