日々精進

新しく学んだことを書き留めていきます

Macのdockアイコンの表示・非表示をruntimeに切り替える

以下でできる。
・PlistのLSUIElementをYESにする。
・下記コードを実行するとDockアイコンが表示される。kProcessTransformToForegroundApplicationをBackgroundに変えれば非表示になる。

    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"LaunchAsAgentApp"]) 
    {
        ProcessSerialNumber psn = { 0, kCurrentProcess };
        TransformProcessType(&psn, kProcessTransformToForegroundApplication);
        SetFrontProcess(&psn);
    }

参考:cocoa - Modify Info.plist to set "Application is agent(UIElement)" at runtime - Stack Overflow