从底部调整NSWindow高度?

时间:2011-06-26 19:33:21

标签: objective-c cocoa frame nswindow

假设我有一个名为mWindow的窗口。为了增加高度,我会对框架执行此操作:

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

但是,这会增加窗口的顶部的高度,而不是底部的高度。如何让它在底部而不是顶部添加更多窗口?

3 个答案:

答案 0 :(得分:9)

由于坐标在Cocoa中的工作方式,你必须做一些额外的步骤来完成这项工作:

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

或者,您可以使用NSWindow的setFrameOrigin:setFrameTopLeftPoint:方法。

答案 1 :(得分:1)

您可以随时相应地调整原点,即将其抬高向下移动。

答案 2 :(得分:1)

我使用此代码段。您必须根据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)
}