実行時にドック アイコンを表示または非表示にする機能をユーザーに提供するアプリを作成しています。KVOを使用して次のコードを起動する、ユーザーのデフォルト値を設定するチェックボックス付きの設定ウィンドウがあります。
if (!hideDockIcon) {
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
} else {
TransformProcessType(&psn, kProcessTransformToUIElementApplication);
}
これは機能しますが、非表示にすると、環境設定ウィンドウが直接閉じられます (現在はバックグラウンド アプリであるため、これは理にかなっています)。しかし、MS の SkyDrive クライアントは、[設定] ウィンドウを開いたままにして、アイコンを非表示にしていることに気付きました。私はそれをどのように行うかを見つけることができませんでした。誰かアイデアがありますか?
[NSApp setActivationPolicy: NSApplicationActivationPolicyRegular]
and NSApplicationActivationPolicyAccessory
/も使用してみNSApplicationActivationPolicyProhibited
ましたが、うまくいきません。Accessory
ドックアイコンを非表示にせずProhibited
、ウィンドウも閉じ、[NSApp activateIgnoringOtherApps:YES]
無視されるようです。