1010
1111
1212static NSString * const SFYPlayerStatePreferenceKey = @" ShowPlayerState" ;
13- static NSString * const SFYPlayerDockIconPreferenceKey = @" ShowDockIcon " ;
13+ static NSString * const SFYPlayerDockIconPreferenceKey = @" YES " ;
1414
1515@interface SFYAppDelegate ()
1616
@@ -24,14 +24,17 @@ @implementation SFYAppDelegate
2424
2525- (void )applicationDidFinishLaunching : (NSNotification * __unused)aNotification
2626{
27+ // Initialize the variable the getDockIconVisibility method checks
28+ [[NSUserDefaults standardUserDefaults ] setBool: YES forKey: SFYPlayerDockIconPreferenceKey];
29+
2730 self.statusItem = [[NSStatusBar systemStatusBar ] statusItemWithLength: NSVariableStatusItemLength ];
2831 self.statusItem .highlightMode = YES ;
2932
3033 NSMenu *menu = [[NSMenu alloc ] initWithTitle: @" " ];
3134
3235 self.playerStateMenuItem = [[NSMenuItem alloc ] initWithTitle: [self determinePlayerStateMenuItemTitle ] action: @selector (togglePlayerStateVisibility ) keyEquivalent: @" " ];
3336
34- self.dockIconMenuItem = [[NSMenuItem alloc ] initWithTitle: [ self determineDockIconMenuItemTitle ] action: @selector (toggleDockIconVisibility ) keyEquivalent: @" " ];
37+ self.dockIconMenuItem = [[NSMenuItem alloc ] initWithTitle: NSLocalizedString( @" Hide Dock Icon " , nil ) action: @selector (toggleDockIconVisibility ) keyEquivalent: @" " ];
3538
3639 [menu addItem: self .playerStateMenuItem];
3740 [menu addItem: self .dockIconMenuItem];
@@ -43,7 +46,6 @@ - (void)applicationDidFinishLaunching:(NSNotification * __unused)aNotification
4346 [NSTimer scheduledTimerWithTimeInterval: 1 target: self selector: @selector (setStatusItemTitle ) userInfo: nil repeats: YES ];
4447}
4548
46-
4749#pragma mark - Setting title text
4850
4951- (void )setStatusItemTitle
@@ -70,7 +72,6 @@ - (void)setStatusItemTitle
7072 }
7173}
7274
73-
7475#pragma mark - Executing AppleScript
7576
7677- (NSAppleEventDescriptor *)executeAppleScript : (NSString *)command
@@ -81,7 +82,6 @@ - (NSAppleEventDescriptor *)executeAppleScript:(NSString *)command
8182 return eventDescriptor;
8283}
8384
84-
8585#pragma mark - Player state
8686
8787- (BOOL )getPlayerStateVisibility
@@ -132,20 +132,23 @@ - (BOOL)getDockIconVisibility
132132
133133- (void )setDockIconVisibility : (BOOL )visible
134134{
135- [[NSUserDefaults standardUserDefaults ] setBool: visible forKey: SFYPlayerDockIconPreferenceKey];
135+ [[NSUserDefaults standardUserDefaults ] setBool: visible forKey: SFYPlayerDockIconPreferenceKey];
136136}
137137
138138- (void )toggleDockIconVisibility
139139{
140140 [self setDockIconVisibility: ![self getDockIconVisibility ]];
141141 self.dockIconMenuItem .title = [self determineDockIconMenuItemTitle ];
142142
143- if ([_dockIconMenuItem.title isEqual: @" Show Dock Icon " ])
143+ if (![ self getDockIconVisibility ])
144144 {
145+ // Apple recommended method to show and hide dock icon
146+ // hide icon
145147 [NSApp setActivationPolicy: NSApplicationActivationPolicyAccessory];
146148 }
147149 else
148150 {
151+ // show icon
149152 [NSApp setActivationPolicy: NSApplicationActivationPolicyRegular];
150153 }
151154}
@@ -162,6 +165,4 @@ - (void)quit
162165 [[NSApplication sharedApplication ] terminate: self ];
163166}
164167
165- @end
166-
167-
168+ @end
0 commit comments