2010-05-22 8 views
10

En este momento estoy ajuste de la posición de una ventana que está a punto de abrir la siguiente manera:ajuste de la posición de NSWindow antes de la visualización

-(void) setActiveNodeDialog:(ISKNodeDialogController *)dialog 
{ 
    if (activeNodeDialog) 
     [[activeNodeDialog window] close]; 
    activeNodeDialog = dialog; 
    if (activeNodeDialog) { 
     [activeNodeDialog setMainWindowController:self]; 
     NSRect windowRect = [[self window] frame]; 
     NSRect dialogRect = [[activeNodeDialog window] frame]; 
     NSPoint pos; 
     pos.x = windowRect.origin.x + windowRect.size.width - dialogRect.size.width - 10; 
     pos.y = windowRect.origin.y + 32; 
     [[activeNodeDialog window] setFrameOrigin:pos]; 
     [[activeNodeDialog window] makeKeyAndOrderFront:nil]; 
    } 
} 

es decir, que la ventana se "salta" cuando se muestra el problema con eso . Y eso a pesar de que configuré la posición antes de mostrar la ventana con "makeKeyAndOrderFront". La ventana es NSPanel *. Alguien alguna idea de cómo arreglar el salto?

Establecer la posición en awakeFromNib no es una opción porque el controlador principal está configurado más tarde.

Respuesta

14

En Interface Builder, ¿está "visible en el inicio" marcado para la ventana? Si es así, desmárcala y no necesitarás este código [[activeNodeDialog window] close] ;. Básicamente, si eso está marcado, la ventana se muestra automáticamente cuando se crea una instancia del xib ... que no se desea.

+0

De hecho, eso estaba causando ese problema. Gracias –

+1

Gracias a Dios. Esta respuesta salvó mi vida. – Jason

Cuestiones relacionadas