2010-03-13 15 views
3

J'ai une classe appelée ModelView qui hérite de NSOpenGLView. Lorsque mon programme s'exécute je joins le ModelView comme suit à la fenêtre principale.NSOpenGLView redimensionner sur la fenêtre redimensionner

- (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];   
} 

Dans ma classe MODELVIEW i ont une fonction de retaillage qui est mise à feu chaque fois que la fenêtre redimensionne

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

Je veux obtenir la principale largeur de la fenêtre donc je peux redimensionner la MODELVIEW mais je ne peux pas trouver comment pour obtenir la largeur de la fenêtre de la classe MODELVIEW

Je suis raisonnablement nouveau au cacao/objectif-c de sorte que toute aide est appréciée

Répondre

1

chaque vue possède une propriété de fenêtre, donc [self window] obtiendrez la fenêtre, et [[[self window] contentView] bounds].size.width donnera la largeur, mais vous pouvez directement aller au contentView en utilisant [[self superview] bounds].size.width

+0

Merci mais le [[self parentView] limites] .size.width me donne un MODELVIEW d'avertissement ne peut pas répondre à '-parentView', et les limites [[[self window] contentView]] .size.width retourne 0. Qu'est-ce que je fais mal ?? – ADAM

+0

@ADAM ah, j'ai oublié que c'est superview, édité. – cobbal

Questions connexes