NSView に合わせて NSWindow のサイズを変更するのに問題があります。機能するため、論理エラーである必要がありますが、1 つのアクションではありません。
空の NSWindow が 1 つと、コンポーネントがあり、サイズが異なる 3 つの NSView があります。
次のコードでは、NSView に合わせて NSWindow のサイズを変更して表示します。
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
このコードは正常に動作します。
ただし、1 つの NSView には [戻る] ボタンがあり、これにより NSWindow に正しい NSView が表示されますが、サイズが元に戻りません。例として、最初のウィンドウは特定のサイズです。クリックして別のビューに切り替えると、サイズが正しく変更されます。戻るボタンを押すと、NSView が表示されますが、ウィンドウは同じサイズのままですか?
元の NSView に戻ったときに NSWindow のサイズが変更されない理由を誰かに説明してもらえますか?
よろしくお願いします。これは私が持っている完全なコードです:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
- (IBAction)switchSubtractionView:(id)sender {
[_window setContentSize:_subtractionView.frame.size];
[_window setContentView:_subtractionView];
}
- (IBAction)switchAdditionView:(id)sender {
[_window setContentSize:_additionView.frame.size];
[_window setContentView:_additionView];
}
// -----------------------------------------------------------------------
// THE FOLLOWING METHOD DISPLAYS THE NEW VIEW CORRECTLY BUT DOESN'T RESIZE
// -----------------------------------------------------------------------
- (IBAction)switchMainMenu:(id)sender {
[_window setContentSize:_mainView.frame.size];
[_window setContentView:_mainView];
}
よろしくお願いします。
編集: VIEW.frame.size を取得するときに、これを繰り返し使用すると値が失われるように思えますか? これは私には非常に奇妙な動作に思えますか?