title: How do I update the expansion tooltip size after calling NSTextField setStringValue:?
body: <p>When a view contains an <code>NSTextField</code> with the expansion tooltip enabled and the text doesn't fit, then the user hovers the cursor over the field, OS X shows an expansion tooltip. If you then call <code>setStringValue:</code> to change the text content of the <code>NSTextField</code>, the expansion tooltip's size is not updated. For instance, if the original text was 100 characters long but the new text is only 50 characters long, hovering over the new text will show an expansion tooltip large enough for 100 characters containing the new text. This is true even if the new string fits entirely in the <code>NSTextField</code>, which normally would prevent an expansion tooltip appearing.</p>
  
  <p>The opposite also occurs: If the original string fits within the <code>NSTextField</code>, no expansion tooltip appears. If the new string does not fit within the <code>NSTextField</code>, no expansion tooltip appears even though it should.</p>
  
  <p>Internally, the <code>NSTextField</code>'s <code>NSTextFieldCell</code> implements the <code>NSCell</code> method <code>expansionFrameWithFrame:inView:</code>. Something (I'm not sure what) calls this once, and seems to cache the result. Setting a new string using <code>setStringValue:</code> does not cause this function to be called again.</p>
  
  <p>Calling <code>setNeedsDisplay</code> on the NSTextField after calling <code>setStringValue:</code> does not fix this.</p>
  
  <p>So how do I get AppKit to resize the expansion tooltip?</p>