2 つの NSWindows を一緒に動かそうとしています (NSWindows は互いに接続されています)。を使用して
- (void)windowDidMove:(NSNotification *)notification
しかし、この方法は怠惰で、実際には機能しません。オーバーライドsetFrameOrigin
やその他のsetFrame
メソッドも同様に機能しませんでした。これを行うための最良の方法は何だろうと思っていましたか?さまざまなアプローチの提案をいただければ幸いです。
2 つの NSWindows を一緒に動かそうとしています (NSWindows は互いに接続されています)。を使用して
- (void)windowDidMove:(NSNotification *)notification
しかし、この方法は怠惰で、実際には機能しません。オーバーライドsetFrameOrigin
やその他のsetFrame
メソッドも同様に機能しませんでした。これを行うための最良の方法は何だろうと思っていましたか?さまざまなアプローチの提案をいただければ幸いです。
子ウィンドウは、あなたの状況に最も適しているようです。
これらは実装が簡単で、 の-addChildWindow:ordered:
方法で実行できNSWindow
ます。リファレンスはそれをかなりよく説明しているので、ここにそれをコピーします:
childWindow がウィンドウの子として追加された後、いずれかのウィンドウを含む後続の順序付け操作のために、orderingMode によって示される相対位置に維持されます。このアタッチメントがアクティブな間、childWindow を移動してもウィンドウは移動しませんが (引き出しをスライドさせたり外したりする場合と同様)、ウィンドウを移動すると childWindow が移動します。
基本的に、親ウィンドウを移動すると、コードを追加しなくても子ウィンドウが一緒に移動します。あなたが望むもののように聞こえます。