(+)ボタンと(-)ボタンがあります...(+)ボタンを押すとウィンドウが下方向に長くなり、(-)ボタンを押すと(+)ボタンを元に戻すことができます。下。
重要なのは、フレームは下からのみ引き伸ばされ、ほとんどのUIアイテムは所定の位置にとどまる必要があるということです。ウィンドウの下部には、ウィンドウの高さの変化に追従するボタンがあります...
問題は、これを使用してウィンドウをシフトし、その内容の同じ位置を維持していることです...
NSRect frame = sender.window.frame;
NSLog(@"\nHeight and width of window frame: (%f,%f).\nThe x and y origin of the window frame: (%f,%f). ", frame.size.height, frame.size.width, frame.origin.x, frame.origin.y);
frame.origin.y -= 22;
frame.size.height += 22;
[sender.window setFrame:frame display:YES animate:NO];
NSRect viewFrame = mainView.frame;
viewFrame.origin.y -= 22;
viewFrame.size.height += 22;
mainView.frame = viewFrame;
ただし、(+)ボタンを1回クリックするとします。フレームが長くなると、すべてのアイテムがわずかに上にシフトします。最初に押した後に(+)を続けてクリックすると、期待どおりに機能します。フレームが下に移動し、その内容がそのまま残ります。次に(-)ボタンを1回クリックした場合。フレームが短くなると、すべてのアイテムがわずかに下にシフトします。最初に押した後、(-)を続けてクリックすると、フレームが期待どおりに移動します。
初めてボタンを押すとすべてのウィンドウの内容が移動し、連続して押すと意図したとおりに機能するようです...XCodeのインターフェイスエディタで自動サイズ設定について何かが足りないかどうか知りたいのですが。ありがとうございました。