2010-12-17 11 views
8

¿Cómo se establece el tamaño de NSView de forma programática, p.¿Cómo establecer el tamaño NSView mediante programación?

-(void)awakeFromNib { 
     self.frame.size.width = 1280; // Does nothing... 
     self.frame.size.height = 800; // ...neither does this. 
     ... 

La configuración del tamaño de la punta (de Mac OS X) funciona bien, pero quiero hacerlo en código.

Respuesta

15

Cuando se llama a self.frame, devuelve los datos en el marco, y no un puntero. Por lo tanto, cualquier cambio en el resultado no se refleja en la vista. Con el fin de cambiar la vista, hay que establecer el nuevo marco después de realizar cambios:

- (void)awakeFromNib { 
    NSRect f = self.frame; 
    f.size.width = 1280; 
    f.size.height = 800; 
    self.frame = f; 
    //... 
} 
+2

Muchas gracias. Perdí la voluntad de vivir. Ahora, no solo ha comenzado algo, sino que descubro que esta es la pregunta equivocada, cuya respuesta se encuentra debajo. –

+0

@ughoavgfhw simplemente genial gracias – pregmatch

7

utilizar el método de -setFrameSize: o -setFrame:

+0

Corrija la respuesta. Cambiar directamente la propiedad del marco parece no funcionar al menos en Swift. – udondan

4

Para programación de configuración del tamaño de la aplicación (que es lo que quería hacer) que necesita para hacer esto: -

- (void)awakeFromNib { 
    ... 
    NSWindow* w = [self window]; 
    NSRect f; 
    f.size.width = 1280; 
    f.size.height = 800; 
    [w setFrame:f display:YES]; 
} 
Cuestiones relacionadas