title: NSScrollView: Override system display settings?
body: <p>I have a <strong>NSScrollView</strong>, which was set to:</p>
  
  <pre><code>MyNSScrollView.hasHorizontalScroller = YES;
  MyNSScrollView.hasVerticalScroller = YES;
  MyNSScrollView.autohidesScrollers = YES;
  MyNSScrollView.scrollerStyle = NSScrollerStyleOverlay;
  </code></pre>
  
  <p>I noticed that when if there's no trackpad connecting to OS X, and by default, the <code>NSScrollView</code> will ignore my settings in the code and force the scrollers always shown:</p>
  
  <p><a href="https://i.stack.imgur.com/U7KgN.png" rel="noreferrer"><img src="https://i.stack.imgur.com/U7KgN.png" alt="Settings"></a></p>
  
  <p>I can only either change my system settings to "<strong>When scrolling</strong>" or set <code>hasHorizontalScroller</code> etc. to <code>NO</code> to hide it, and the later will disable mouse scrolling which is not the result I want.</p>
  
  <p>By default (Automatically based on mouse or trackpad) will always display the scroller if the user has no trackpad, even when the content size does not exceed the frame size. But if you have a trackpad, it will be overlay style that no matter the scroller shows or not, it's above the content.</p>
  
  <p>The difference between the 2 is that "legacy" style will take up spaces in the scrollerview. It'd be a problem if you were relaying on the <code>visiableRect</code> value for calculation, or your contents needs to remain certain aspect-ratio via constraints.</p>
  
  <p>Is there a way to force hide them without disabling them?</p>