У меня есть кнопки (+) и (-)... Кнопка (+) должна сделать окно длиннее в направлении вниз, а кнопка (-) должна отменить то, что сделала кнопка (+), сделав его короче от низ.
Дело в том, что рамка должна растягиваться только снизу, а большинство элементов пользовательского интерфейса должны оставаться на месте — внизу окна есть кнопки, которые должны следовать за изменением высоты окна...
Проблема в том, что я использую это, чтобы сместить окно и сохранить то же положение его содержимого...
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;
Но скажем, вы нажимаете кнопку (+) один раз; все элементы немного смещаются вверх, а рамка становится длиннее. Если вы нажмете (+) последовательно после первого нажатия, он будет работать так, как ожидалось: рамка сместится вниз, а ее содержимое останется на месте. Если вы затем нажали кнопку (-) один раз; все элементы немного смещаются вниз, а рамка укорачивается. Нажав (-) последовательно после первого нажатия, рамка просто переместится, как и ожидалось.
Кажется, что нажатие кнопки в первый раз переместит все содержимое окон, в то время как последовательные нажатия будут работать по назначению... Я хотел бы знать, не упустил ли я что-то об автоматическом изменении размера в редакторе интерфейса XCode. Спасибо.