Reputation: 65
Suppose I have a window named mWindow
. To increase the height I would do this to the frame:
NSRect windowFrame = [mWindow frame];
windowFrame.size.height += 100.0f;
[mWindow setFrame:windowFrame];
However, this increase the height of the top of the window, not the bottom. How can I make it add more window at the bottom instead of the top?
Upvotes: 4
Views: 1527
Reputation: 48185
I use this snippet. You have to adjust origin.y
according to 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)
}
Upvotes: 1
Reputation: 25632
You can always adjust the origin accordingly, i.e. make it higher and move it downwards.
Upvotes: 1
Reputation: 118761
Because of the way coordinates work in Cocoa, you'll have to do some extra steps to make this work:
NSRect windowFrame = [mWindow frame];
windowFrame.size.height += 100;
windowFrame.origin.y -= 100;
[mWindow setFrame:windowFrame display:YES];
Alternatively, you can use the setFrameOrigin:
or setFrameTopLeftPoint:
methods of NSWindow.
Upvotes: 9