ドックのように、メニュー バーを自動的に非表示にするユーティリティを作成したいと考えています。これは、OS X 10.4 のみのアプリケーション「Menufela」を複製しますが、Snow Leopard 用です。
[[NSApplication sharedApplication]
setPresentationOptions: NSApplicationPresentationAutoHideMenuBar
| NSApplicationPresentationAutoHideDock];
このコードは、メニュー バー (およびドック) を自動的に非表示にしますが、アプリケーションが最前面のウィンドウにある場合のみです。開いているアプリケーションに関係なく、この動作をシステム全体に適用するにはどうすればよいですか?
私が考えることができる唯一のものはInputManagerですが、これまでに書いたことがないので、これが正しい方法であるかどうかはわかりません..
また、Leopard/Snow Leopard の時点で InputManagers が制限されているようです - from this SO question :
root や well が所有するプロセスや、uid を変更したプロセスでは実行されません。最も重要なことは、10.5 が Input Manager を 64 ビット プロセスにロードせず、32 ビットの使用でさえサポートされておらず、将来のリリースで削除されることが示されていることです。
「将来のリリースで削除される予定」については心配していません (Snow Leopard で動作する必要があるだけです)。root 所有のプロセスが問題になるとは思いません (すべての GUI アプリケーションは現在の)、しかしおそらくコードは多くの 64 ビット アプリケーション (Finder/Safari/など) に挿入する必要があります。
(私はもともと SuperUser, hereでこれを尋ねましたが、これを達成するための既存のユーティリティがないように見えたので、StackOverflow に関連しています)