@@ -15,12 +15,28 @@ class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelega
15
15
16
16
@IBOutlet weak var table : NSTableView !
17
17
var dreams = defaults [ . dreams]
18
+ var selectedRow : Int = 0
18
19
19
20
override func viewDidLoad( ) {
20
21
super. viewDidLoad ( )
21
22
table. dataSource = self
22
23
table. delegate = self
23
24
}
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
+ }
24
40
25
41
func numberOfRows( in tableView: NSTableView ) -> Int {
26
42
return dreams. count
@@ -38,21 +54,26 @@ class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelega
38
54
}
39
55
40
56
@IBAction func removeTableRow( _ sender: Any ) {
41
- print ( sender)
42
- // removeDream()
57
+ removeDream ( )
43
58
}
44
59
45
60
func addNewDream( ) {
46
- dreams. append ( " Double Click or Press Enter to Add Workout " )
61
+ dreams. append ( " Double Click or Press Enter to Add Item " )
47
62
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 )
49
67
table. endUpdates ( )
50
68
}
51
69
52
70
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
+ }
54
78
}
55
79
}
56
-
57
-
58
-
0 commit comments