Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从底部调整车窗高度?_Objective C_Cocoa_Frame_Nswindow - Fatal编程技术网

Objective c 从底部调整车窗高度?

Objective c 从底部调整车窗高度?,objective-c,cocoa,frame,nswindow,Objective C,Cocoa,Frame,Nswindow,假设我有一个名为mWindow的窗口。要增加高度,我将对框架执行以下操作: NSRect windowFrame = [mWindow frame]; windowFrame.size.height += 100.0f; [mWindow setFrame:windowFrame]; 但是,这会增加窗口顶部的高度,而不是底部的高度。如何使其在底部而不是顶部添加更多窗口?由于坐标在Cocoa中的工作方式,您必须执行一些额外的步骤才能使其工作: NSRect windowFrame = [mWi

假设我有一个名为
mWindow
的窗口。要增加高度,我将对框架执行以下操作:

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

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

由于坐标在Cocoa中的工作方式,您必须执行一些额外的步骤才能使其工作:

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

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

您可以始终相应地调整原点,即将其调高并向下移动。

我使用此代码段。您必须根据偏移量调整原点y

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)
}

这就是我要找的。谢谢,我接受你的回答。