Pregunta

Tengo una subclase NSWindowController personalizado que carga un archivo de SEMILLA durante la inicialización de esta manera:

self = [super initWithNibNamed:@"myNib"];
if (self != nil) {
    [self window];
}

La semilla contiene algunas vistas personalizadas y algunos otros controles. El NSWindowController es el propietario del archivo y al menos una de las vistas, incluso se une a ella.

Simplemente, ¿qué tengo que hacer para cerrar y liberar esa ventana? Me paso todo el día tratando de darse cuenta de eso y todavía estoy desorientado.

¿Fue útil?

Solución

Usted no descargar una punta; “Carga” se trata simplemente de Anulación del archivo de los objetos que se archivan en su interior. Eso no es un estado que persiste indefinidamente; es una acción momentánea. Una vez que haya desarchivar el objeto, no importa de donde vino.

Si no estuviera en un controlador de ventana, a continuación:

  • Para cerrar una ventana, deberá enviar un close mensaje.
  • Para cerrar y liberar una ventana, se tendría que o bien tienen su propiedad releasedWhenClosed encendido (se puede hacer esto en IB) antes de enviarla un mensaje close, o enviando un mensaje sin release después del mensaje close.

Pero ya que estás en un controlador de ventana, simplemente envío Hágase un mensaje close .

Ver también “ventana de cierre comportamiento” en las aplicaciones de documentos basado en general (aplicaciones basadas en documentos siendo los principales usuarios de controladores de ventanas).

Otros consejos

Gracias @peter Hosey.

[self close]; // will work only if your nib is wired up correctly.

Abrir la punta para su archivo. En la ventana que necesita para conectar el "referenciación de salida" de la ventana para el "Archivos Propietario" y elija Ventana. De lo contrario no funcionará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top