OS X アプリケーションのメイン ウィンドウの下部にセカンダリ ウィンドウを追加しようとしています。最終的には、トグル ボタンが押されたときにウィンドウの下からアニメーション化されるようにすることを期待しています。私が知る限り、SDK でこれを行う最善の方法は、- [NSWindow addChildWindow:ordered:]
. しかし、その関数を呼び出すと、セカンダリ ウィンドウは表示されますが、子ウィンドウとして追加されません。ボタンを押したときに呼び出される関数は次のとおりです。
- (IBAction)childToggleButtonPressed:(id)sender {
[self.window addChildWindow:_secondaryWindowController.window ordered:NSWindowBelow];
NSLog(@"Child Windows: %@", [[self.window childWindows] count]);
}
(最初に表示されるようにしているので、まだ閉じるコードを追加していません。)
そして、コンソールへの出力は次のとおりです。
2011-08-31 12:37:25.312 Playground[1712:707] Child Windows: (null)
ウィンドウが子として追加されない理由と、これを修正するためにできることを誰かが知っていますか?
役立つ可能性のある追加のコンテキストは、ウィンドウ自体とタイトル バーの両方の背景として画像を使用してカスタム ウィンドウを描画していることです。私が修正しているコードはhttp://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.htmlにあります。
ありがとうございました!
編集:関数をオーバーライドして、- [NSWindow addChildWindow:ordered:]
見つけた情報をログに記録しようとしましたが、ウィンドウ自体が関数に渡されていないことがわかりました。うまくいけば、これは誰かが問題を見つけるのに役立ちます!