Отрегулировать высоту NSWindow снизу? - PullRequest
4 голосов
/ 26 июня 2011

Предположим, у меня есть окно с именем mWindow.Чтобы увеличить высоту, я бы сделал это для рамки:

NSRect windowFrame = [mWindow frame]; 
windowFrame.size.height += 100.0f;
[mWindow setFrame:windowFrame];

Однако это увеличит высоту верха окна, а не низа.Как я могу добавить больше окна внизу, а не вверху?

Ответы [ 3 ]

9 голосов
/ 26 июня 2011

Из-за того, как координаты работают в Какао, вам придется сделать несколько дополнительных шагов, чтобы сделать эту работу:

NSRect windowFrame = [mWindow frame];
windowFrame.size.height += 100;
windowFrame.origin.y -= 100;
[mWindow setFrame:windowFrame display:YES];

Кроме того, вы можете использовать setFrameOrigin: или setFrameTopLeftPoint: методы NSWindow.

1 голос
/ 04 сентября 2016

Я использую этот фрагмент.Вы должны настроить origin.y в соответствии с offset

func change(height: CGFloat) {
  var frame = window.frame
  let offset = height - frame.size.height
  frame.size.height += offset
  frame.origin.y -= offset

  window.setFrame(rect, display: true)
}
1 голос
/ 26 июня 2011

Вы всегда можете соответствующим образом отрегулировать источник, то есть сделать его выше и переместить его вниз.

...