1

I have a NSView as the documentView for a NSScrollView. I also have a NSImageView as a subview of the NSView. The image dynamically changes size so the scroll bars become active/inactive at various times. Once the image has changed, I'd like to scroll to a certain point on the image. From within the NSView's drawRect: method, I call [[myScrollView contentView] scrollToPoint: myPoint];

The scroll bars update and the image appears as I'd like, but as soon as the image is scrolled, a double image appears or parts of the image get cut off. Any help would be appreciated. Thank you.

4

1 に答える 1

3

NSScrollViewInterface Builderまたはプログラムで、「スクロール時にコピー」動作オプションをオフにしたい場合があります。

Mac OS Xのスクロールビュープログラミングガイドから:スクロールのしくみ

このクラスは、メソッドNSClipViewを通じて低レベルのスクロール サポートを提供します 。scrollToPoint:このメソッドは、コンテンツ ビューの境界四角形の原点を変換し、レンダリングされたドキュメント ビューをできるだけ多くコピーして再表示を最適化し、ドキュメント ビューに新しく公開された領域を描画するように要求するだけです。これにより、通常はスクロールのパフォーマンスが向上しますが、常に適切であるとは限りません。NSClipViewメソッドをパラメーターとしてsetCopiesOnScroll: 渡すことで、この動作をオフにすることができNOます。コピー オン スクロールをアクティブのままにしておく場合は、ではなくNSView メソッドメソッドを使用してプログラムでドキュメント ビューをスクロールしてください。scrollPoint:translateOriginToPoint:

于 2012-05-02T17:24:14.397 に答える