File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -17,24 +17,36 @@ final class MenuController {
17
17
private let applicationManager : ApplicationController
18
18
private let statusItem = NSStatusBar . system ( ) . statusItem ( withLength: NSVariableStatusItemLength)
19
19
20
+ private var observeId : String ?
21
+
20
22
init ( markService: MarkService = . shared, windowManager: WindowController = . shared, applicationManager: ApplicationController = . shared) {
21
23
self . markService = markService
22
24
self . windowManager = windowManager
23
25
self . applicationManager = applicationManager
24
26
}
25
27
28
+ deinit {
29
+ guard let observeId = self . observeId else { return }
30
+ markService. unregisterObserverBlock ( id: observeId)
31
+ }
32
+
26
33
func setup( ) {
27
34
let image = NSImage ( named: " icon_white_16 " )
28
35
image? . isTemplate = true
29
36
statusItem. image = image
30
37
statusItem. highlightMode = true
31
- statusItem. menu = makeMenu ( )
38
+ statusItem. menu = makeMenu ( marks: markService. marks)
39
+
40
+ self . observeId = markService. register { [ weak self] ( marks) in
41
+ guard let menu = self ? . makeMenu ( marks: marks) else { return }
42
+ self ? . statusItem. menu = menu
43
+ }
32
44
}
33
45
34
- func makeMenu( ) -> NSMenu {
46
+ func makeMenu( marks : [ Mark ] ) -> NSMenu {
35
47
let menu = NSMenu ( )
36
48
37
- for mark in markService . marks {
49
+ for mark in marks {
38
50
let menuItem = MarkMenuItem ( )
39
51
menuItem. target = self
40
52
menuItem. action = #selector( didSelectMarkMenuItem ( _: ) )
You can’t perform that action at this time.
0 commit comments