Mac アプリケーションでウィンドウを送信すると、次のように表示されます。
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];
長く伸びているように見えますが、どの UI 要素 (ボタン) も、ウィンドウにスペースが増えたことを認識していません。彼らは開かれた新しいスペースに移動することはできません。
ウィンドウのボタンのすぐそばにあるはずのボタンがいくつかあります。これらをまとめるために、上記のコードと組み合わせて次のコードを使用します。
CGRect quitBF = quitButton.frame;
quitBF.origin.y -= 5; // new y coordinate
quitButton.frame = quitBF;
CGRect loadBF = loadButton.frame;
loadBF.origin.y -= 5; // new y coordinate
loadButton.frame = loadBF;
CGRect saveBF = saveButton.frame;
saveBF.origin.y -= 5; // new y coordinate
saveButton.frame = saveBF;
CGRect resetBF = resetButton.frame;
resetBF.origin.y -= 5; // new y coordinate
resetButton.frame = resetBF;
しかし、窓の古い寸法にぶつかると、消え始めます。窓も長く見える。ありがとうございました。
編集: ウィンドウ自体の自動サイズ変更を調べました。問題の認識は、ウィンドウ内の NSView に関係しています。そのビューにはすべての UI 要素が含まれており、ウィンドウが変更されても変更されないように見えます。唯一の問題は、ビューを上からではなく下から拡張する方法がわからないことです。(トップを大きくして原点をずらしても、UI 要素はすべて NSView と一緒に移動するため、うまくいきません)。