次のように設定されたNSScrollViewがあります。
MyNSScrollView.hasHorizontalScroller = YES;
MyNSScrollView.hasVerticalScroller = YES;
MyNSScrollView.autohidesScrollers = YES;
MyNSScrollView.scrollerStyle = NSScrollerStyleOverlay;
OS X に接続されているトラックパッドがなく、デフォルトでNSScrollView
、コード内の設定が無視され、スクローラーが常に表示されるように強制されることに気付きました。
システム設定を「スクロール時」に変更するか、非表示にするhasHorizontalScroller
などの設定しかできませんNO
。後でマウスのスクロールを無効にしますが、これは私が望む結果ではありません。
デフォルトでは (マウスまたはトラックパッドに自動的に基づく)、ユーザーがトラックパッドを持っていない場合、コンテンツ サイズがフレーム サイズを超えていない場合でも、常にスクローラーが表示されます。ただし、トラックパッドがある場合は、スクローラーが表示されるかどうかに関係なく、コンテンツの上にあるオーバーレイ スタイルになります。
2つの違いは、「レガシー」スタイルがスクローラービューのスペースを占有することです。計算のために値を中継しているvisiableRect
場合、またはコンテンツが制約によって特定のアスペクト比を維持する必要がある場合、それは問題になります。
それらを無効にせずに強制的に非表示にする方法はありますか?