2010-11-19 16 views
1

カスタムNSViewサブクラスの親であるNSScrollViewがあります。サブクラスは、サブビューをレイアウトするためにNSScrollViewのcontentSizeメソッドを使用します。NSScrollViewの不適切なコンテンツサイズ

最初の起動時に、NSScrollViewがcontentSizeを間違って報告するという問題があります。それは、サイズが15px以上であること(スクローラーの幅)として報告されます。それで、私は、スクロールの幅を考慮せずにcontentSizeを返すように思えます。ただし、スクロールビューのフレームを調整すると(サイズ変更などによって)、コンテンツサイズが適切にレポートされます。それは最初の打ち上げ時にちょうど問題と思われる。

これはバグとして報告する必要がありますか?これには良い解決策がありますか?レイアウト中にチェックを行って初めてメソッドが呼び出されたかどうかを確認し、コンテンツサイズから15pxを差し引いた場合の汚い方法を使用することができます。

答えて

0

いつコンテンツのサイズを確認していますか?あなたのビューがnibファイルからインスタンス化されているとき、またはペン先が完全にアーカイブ解除された後に起こっていますか?

私はおそらくだろうが、あなたのレイアウト方法が-viewDidMoveToWindow:または-awakeFromNib

+0

私は-awakeFromNibから呼び出します – indragie

2

から呼び出すです私は同様の問題と、私はそれがあなたに(スクロールビューのコンテンツビューに通知NSViewFrameDidChangeNotificationを観察した解決方法に出くわしましたカスタムNSViewの場合)。

この通知は、スクロールバーをスクロールビューに追加/削除したときにトリガーされ、その時点でビューのコンテンツの位置を変更できます。

+0

領収書ありがとうございます! – dmitrynikolaev

0

スクロールバーを自動的に表示/非表示するオプションを使用していますか?