Set NSWindow Size programmatically

前端 未结 6 2055
栀梦
栀梦 2021-02-01 19:19

How can I set the window size programmatically? I have a window in IB and I want to set the size of it in my code to make it larger.

6条回答
  •  北恋
    北恋 (楼主)
    2021-02-01 20:00

    Use -setFrame:display:animate: for maximum control:

    NSRect frame = [window frame];
    frame.size = theSizeYouWant;
    [window setFrame: frame display: YES animate: whetherYouWantAnimation];
    

    Note that window coordinates are flipped from what you might be used to. The origin point of a rectangle is at its bottom left in Quartz/Cocoa on OS X. To ensure the origin point remains the same:

    NSRect frame = [window frame];
    frame.origin.y -= frame.size.height; // remove the old height
    frame.origin.y += theSizeYouWant.height; // add the new height
    frame.size = theSizeYouWant;
    // continue as before
    

提交回复
热议问题