MinimumMenuの動作を調べる

昨日の続き。

昨日行った改造が影響してかどうしてか、MinimumMenu の ClearWindow つまり青い線が画面の上部に表示されなくなってしまった。そこで awakeFromNib メソッドのウィンドウを非表示にしているところをコメントアウトして実行したら、画面の下に表示されているのがわかった。

仕方なく改造を元に戻したり、別の改造をかけてみたりしているうちにまた同じように青い線が画面の下に表示されるようになった。ところが、オリジナルの MinimumMenu を起動してすぐに終了して、改造した MinimumMenu を実行するとちゃんと画面の上に表示される。OS X 10.7.3 (Lion) で実行しているせいかなとも思って、プロジェクトの設定をいじったりしてみてもダメ。

ClearWindow オブジェクトを初期化するところでは、確かに画面上部にウィンドウができているようなのだが。ウィンドウのフレームを計算しているところをいろいろいじってみると、ウィンドウの高さが画面よりも小さいと強制的に画面下部に移動させられているような気配である。画面全体と同じ大きさのフレームでウィンドウを初期化すれば画面下部に移動させられないようだ。透明なウィンドウなので画面全体を覆ってしまっても、特に問題はないかなあと思ったのだが、それはなんとなく気持ちが悪い。

そこで、AppController クラスの applicationDidFinishLaunching: の中で setFrame:display: としてウィンドウの位置を設定したら、うまく画面上部に表示するようになった。