Cocoa のNSScrollViewはひどく説明不足です。ここにいる誰かがそれが何であるかを知っていて、数秒時間を割いてくれることを願っています.
だから私はカスタムNSViewを持っています。私は -drawRect を実装しています: 何かを描画したり、色で塗りつぶしたりします。次に、それをラップする NSScrollView を用意します (インターフェイス Builder を使用して設定します)。
ここで、内側のカスタム ビューは、スクロールするために、外側のスクロール ビューに収まるサイズよりも大きいサイズにする必要があります。それくらい私は気づきます。ちなみに、スクロール ビューが周囲のウィンドウのサイズに合わせて調整されるように構成しましたが、それは問題ではありません。
内部ビューの -frame メソッドをオーバーライドして、少なくとも 1000x1000 のサイズのフレームを返します。
- (NSRect)frame {
CGFloat w = 1000;
CGFloat h = 1000;
if (self.superview.bounds.size.width > w)
w = self.superview.bounds.size.width;
if (self.superview.bounds.size.height > h)
h = self.superview.bounds.size.height;
return NSMakeRect(0, 0, w, h);
}
解釈に問題がある結果は次のとおりです。
- スクロール ビューが 1000x1000 より小さい領域を囲む場合にスクロールできます
しかし
色で塗りつぶされた唯一の領域 (つまり、私の -drawRect: メソッドが影響する領域) は
- スクロール ビューの境界と同じ大きさ
- (0,0 にあります。私は反転を使用しているので、それが左上であり、スクロール後に可視領域の外に出てしまいます。
- この無関係な長方形の外側にある可視領域はまったく描画されません。
私はこの点を超えて何も知りません。描画用の四角形は、ウィンドウ内のスクロール ビューの位置やサイズなどにクリップされているようですが、スクロールされた「場所」は考慮されていません。
他に何かが起こるとは本当に期待していないことに注意してください。ピースが欠けているように感じますが、どれが見つかりません。テキストの壁で申し訳ありませんが、今はうまく説明できません。質問するより答えやすいと思います。
よろしくお願いします。
リック・アストリーではない