Pregunta

Tengo un SEMILLA que contiene dos ventanas, una ventana es principal de la aplicación visible en el lanzamiento y la otra es una hoja de encargo (y por lo tanto no es visible en el lanzamiento). Cuando se requiere la hoja de mis llamadas controlador:

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

que muestra la ventana de la hoja y se inicia una sesión de modal, y La ventana tiene una barra de título estándar de la aguamarina, no es 'conectado' a la ventana principal y se puede mover en torno al igual que una ventana normal . No hace falta decir que esto no es deseable :-). ¿Por qué la ventana de la hoja "se salga" de la ventana es dirigido por, como hojas por lo general cuando se comienza de esta manera?

Me había preguntado si el hecho de que yo estaba empezando la hoja en el interior del controlador -awakeFromNib podría tener un efecto, por lo que se trasladó la hoja a la acción de un botón que podía desencadenar más tarde. Esto no cambió el comportamiento. No he pensado en otra cosa que tratar. Estoy focalización del SDK 10.5, usando Xcode 3.1.

Editar lo que parece que he creado un diálogo modal; hojas y cuadros de diálogo APP-modal son ambos comenzaron con el método -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:. Pero ¿Cómo indico que mi ventana debe ser una hoja y no un diálogo modal?

¿Fue útil?

Solución

Si mainWindow es nulo entonces la hoja se muestra como una ventana / de diálogo.

Otros consejos

Esto me sucedió hace un par de días:

  • Usted se olvidó de establecer el Ventana salida de su controlador de ventana ( propietario del archivo del archivo NIB). Según lo indicado por Nathan, es posible ver que los -[NSWindowController window] devuelve el método nulo.
  • También debe desmarcar la Visible en el lanzamiento opción de la hoja.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top