2012-08-17 273 views

回答

4
- (void) resizeWindowWithContentSize:(NSSize)contentSize animated:(BOOL)animated { 
    CGFloat titleBarHeight = self.window.frame.size.height - ((NSView*)self.window.contentView).frame.size.height; 
    CGSize windowSize = CGSizeMake(contentSize.width, contentSize.height + titleBarHeight); 

    // Optional: keep it centered 
    float originX = self.window.frame.origin.x + (self.window.frame.size.width - windowSize.width)/2; 
    float originY = self.window.frame.origin.y + (self.window.frame.size.height - windowSize.height)/2; 
    NSRect windowFrame = CGRectMake(originX, originY, windowSize.width, windowSize.height); 

    [self.window setFrame:windowFrame display:YES animate:animated]; 
} 
2

你可以这样做 -

[window setContentSize:newContentSize] 

也有方法的窗口和内容大小之间的转换:

  • - (NSRect)contentRectForFrameRect:(NSRect)windowFrame
  • - (NSRect)frameRectForContentRect:(NSRect)windowContent