XCode创建了一个GUI工程,程序分几种运行模式,一种是agent模式,还有一种是GUI界面。Agent模式是没有界面的GUI程序,通过LaunchAgents启动。创建出来的Info.plist默认有DockIcon,通过改plist没法满足需求。通过代码来控制也是比较简单,但是有几点注意事项:
1. 在设置隐藏Dock图标的时候需要重启应用程序,无法在运行时动态完成的,而在显示Dock图标的时候则不需要。
2. 修改默认隐藏DockIcon,根据配置来动态显示DockIcon。
显示DockIcon代码:
if( [[NSUserDefaults standardUserDefaults] boolForKey:@"ShowDockIcon"] == NSOffState ) { [[NSUserDefaults standardUserDefaults] setBool: YES forKey: @"ShowDockIcon"]; ProcessSerialNumber psn = { 0, kCurrentProcess }; TransformProcessType(&psn, kProcessTransformToForegroundApplication ); }
在此记录!