【问题标题】:Adjust NSWindow height from bottom?从底部调整 NSWindow 高度?
【发布时间】:2011-06-26 19:33:21
【问题描述】:
假设我有一个名为mWindow 的窗口。为了增加高度,我会对框架这样做:
NSRect windowFrame = [mWindow frame];
windowFrame.size.height += 100.0f;
[mWindow setFrame:windowFrame];
但是,这会增加窗口顶部的高度,而不是底部。如何让它在底部而不是顶部添加更多窗口?
【问题讨论】:
标签:
objective-c
cocoa
frame
nswindow
【解决方案1】:
由于坐标在 Cocoa 中的工作方式,您必须执行一些额外的步骤才能完成这项工作:
NSRect windowFrame = [mWindow frame];
windowFrame.size.height += 100;
windowFrame.origin.y -= 100;
[mWindow setFrame:windowFrame display:YES];
或者,您可以使用 NSWindow 的 setFrameOrigin: 或 setFrameTopLeftPoint: 方法。
【解决方案3】:
我用这个sn-p。你要根据offset调整origin.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)
}