我有我的NSOpenGLView的缩放方法。如果放大图像,则会增加NSOpenGLView帧大小、视口等。如果NSOpenGLView正在缩小(帧大小、视口等正在缩小),也会发生同样的事情。所以我需要的是,如果图像被放大,NSOpenGLView比我的窗口大,滚动条应该会出现。所以我想把NSOpenGLView放到NSScrollView上会是我的解决方案。但它没有。它不起作用。那我怎么做呢?
发布于 2014-12-02 18:14:56
在界面生成器中将NSOpenGLView放入NSScrollView时,必须重新定义自定义视图的方法:
- (void)awakeFromNib -这里是initialisations.- (void)drawRect: (NSRect) dirtyRect和其他rendering.- (void)setFrame:(NSRect)frame -这里是OpenGL -这是对帧大小更改的反应。作为视口使用visibleRect的大小:
glViewport(0,
0,
self.visibleRect.size.width,
self.visibleRect.size.height);如果您的视图正在闪烁,请同时重新定义方法resizeWithOldSuperviewSize:
- (void)resizeWithOldSuperviewSize:(NSSize)oldSize {
};但是它是hack,如果使用它的话,最好是自定义实现剪辑视图。
如果你想缩放你的OpenGL视图,只需改变它的边框大小。
https://stackoverflow.com/questions/12085523
复制相似问题