NSOpenGLView のズーム方法があります。画像を拡大すると、NSOpenGLView のフレーム サイズ、ビュー ポートなどが拡大されます。NSOpenGLView が縮小されている (フレーム サイズ、ビュー ポートなどが縮小されている) 場合も同じことが起こります。したがって、NSOpenGLViewがウィンドウよりも大きくなるように画像を拡大すると、スクロールバーが表示されるはずです。そこで、NSOpenGLView を NSScrollView に配置することが私の解決策になると考えました。しかし、そうではありません。うまくいきません。どうすればそれができますか?
質問する
531 次
1 に答える
0
Interface Builder で NSOpenGLView を NSScrollView に配置した場合、カスタム ビューのメソッドを再定義する必要があります。
- (void)awakeFromNib
- ここに OpenGL とその他の初期化があります。- (void)drawRect: (NSRect) dirtyRect
- これがレンダリングです。- (void)setFrame:(NSRect)frame
- フレームのサイズを変更したときの反応は次のとおりです。
ビューポートとして visibleRect のサイズを使用します。
glViewport(0,
0,
self.visibleRect.size.width,
self.visibleRect.size.height);
ビューが点滅している場合は、メソッドresizeWithOldSuperviewSize
も再定義します。
- (void)resizeWithOldSuperviewSize:(NSSize)oldSize {
};
しかし、それはハックであり、使用する場合は、Clip ビューのカスタム実現を行う方がよいでしょう。
OpenGL ビューをズームしたい場合は、フレーム サイズを変更するだけです。
于 2014-12-02T10:14:56.030 に答える