title: addSubview and autosizing
body: <p><strong>How does one add views to a window, so that the views are resized to fit within the window frame?</strong></p>
  <h1>The problem</h1>
  <p>I'm making a sheet window containing 2 views, where only one of them is visible at a time,
  so it's important that the views have the same size as the window. My problem is that either
  view0 fits correctly and view1 doesn't or the other way around. I can't figure out how to
  give them the same size as the window.</p>
  <h1>Possible solution</h1>
  <p>I could just make sure that both views have precisely the same size within Interface Builder, then it would work. However I'm looking for a way to do this programmatically.</p>
  <hr />
  <h2>Screenshot of view0</h2>
  <p>Below you can see the autoresizing problem in the top and the right side, where the view is somehow clipped.</p>
  <p><a href="https://i.stack.imgur.com/hZhbW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hZhbW.png" alt="view0" /></a><br />
  <sub>(source: <a href="https://farm5.static.flickr.com/4002/4550783724_7f59889543_o.png" rel="nofollow noreferrer">flickr.com</a>)</sub></p>
  <hr />
  <h2>Screenshot of view1</h2>
  <p>This view is resized correctly.</p>
  <p><a href="https://i.stack.imgur.com/xRU3b.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/xRU3b.png" alt="view1" /></a><br />
  <sub>(source: <a href="https://farm5.static.flickr.com/4052/4550783774_bd018e7ec8_o.png" rel="nofollow noreferrer">flickr.com</a>)</sub></p>
  <hr />
  <h2>Here is my code</h2>
  <p>Can the views be resized before adding them to the window. Or is it better to do as I do now where the views are added one by one while changing the window frame. How do you do it?</p>
  <pre><code>NSView* view0 = /* a view made with IB */;
  NSView* view1 = /* another view made with IB */;
  NSWindow* window = [self window];
  
  NSRect window_frame = [window frame];
  
  NSView* cv = [[[NSView alloc] initWithFrame:window_frame] autorelease];
  [window setContentView:cv];
  [cv setAutoresizesSubviews:YES];
  
  // add subview so it fits within the contentview frame
  {
      NSView* v = view0;
      [v setHidden:YES];
      [v setAutoresizesSubviews:NO];
      [cv addSubview:v];
      [v setFrameOrigin:NSZeroPoint];
      [window setFrame:[v frame] display:NO];
      [v setAutoresizesSubviews:YES];
  }
  
  // add subview so it fits within the contentview frame
  {
      NSView* v = view1;
      [v setHidden:YES];
      [v setAutoresizesSubviews:NO];
      [cv addSubview:v];
      [v setFrameOrigin:NSZeroPoint];
      [window setFrame:[v frame] display:NO];
      [v setAutoresizesSubviews:YES];
  }
  
  // restore original window frame
  [window setFrame:window_frame display:YES];
  
  [view0 setHidden:NO];
  [view1 setHidden:YES];
  </code></pre>