NSOpenGLView在窗口调整大小时调整大小

时间:2010-03-13 21:25:39

标签: objective-c cocoa opengl

我有一个名为ModelView的类,它继承自NSOpenGLView。 当我的程序运行时,我将如下的ModelView附加到主窗口。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application 
    ModelView *glView; 
    NSRect glViewRect = CGRectMake(0.0f, 0.0f, window.frame.size.width, window.frame.size.height);
    glView = [[ModelView alloc] initWithFrame: glViewRect];
    [[window contentView] addSubview:glView];           
}

在我的ModelView类中,我有一个reshape函数,每次窗口调整大小时都会触发

- (void)reshape
{
    [super setNeedsDisplay:YES];
    [[self openGLContext] update];  
    NSLog(@"reshap function called");
}

我想得到主窗口宽度,所以我可以调整ModelView的大小,但我无法找到如何从ModelView类获取窗口宽度

我对cocoa / objective-c相当新,所以感谢任何帮助

1 个答案:

答案 0 :(得分:1)

每个视图都有一个窗口属性,因此[self window]将获取窗口,[[[self window] contentView] bounds].size.width将给出宽度,但您可以使用[[self superview] bounds].size.width