2008-12-30 14 views

Respuesta

12

Primero, determine qué pantalla desea utilizar repitiendo [pantallas NSScreen].

Crear una ventana de pantalla completa con:

NSScreen *screen = /* from [NSScreen screens] */ 
NSRect screenRect = [screen frame]; 
NSWindow *window = [[NSWindow alloc] initWithContentRect:screenRect 
    styleMask:NSBorderlessWindowMask 
    backing:NSBackingStoreBuffered 
    defer:NO 
    screen:screen]; 
[window setLevel: CGShieldingWindowLevel()]; 

Es posible que desee google CGDisplayCapture() también.

+0

Gracias, funcionó muy bien. Como estaba intentando hacer una salida a la pantalla secundaria, acabo de utilizar [window setLevel: NSStatusWindowLevel]; – Austin

4

Puede llamar al método enterFullScreenMode:withOptions: de NSView para lograr el comportamiento deseado.

Ver Apple's documentation.

Lea here y here para conocer las opciones que se pueden suministrar a este método.

Puede usar [NSScreen screens] para obtener la lista de pantallas disponibles. Vea here para más detalles.

+0

Gracias por la ayuda. Por lo que estaba tratando de hacer, creo que la primera solución va a funcionar mejor para mí, pero tendré que tener en cuenta ese método de visualización en pantalla completa. – Austin

0

Las animaciones de la ventana de pantalla completa son entrecortadas y no se ven bien en mi opinión. La vista de pantalla completa es mucho más suave.

Prueba esto:

- (void)toggleMyViewFullScreen:(id)sender 
{ 
    if (myView.inFullScreenMode) { 
     [myView exitFullScreenModeWithOptions:nil]; 
    } else { 
     NSApplicationPresentationOptions options = 
      NSApplicationPresentationHideDock |  
      NSApplicationPresentationHideMenuBar; 

     [myView enterFullScreenMode:[NSScreen mainScreen] withOptions:@{ 
      NSFullScreenModeApplicationPresentationOptions : @(options) }]; 
                       }]; 
    } 
} 

es posible conectar este a la opción de menú de pantalla completa en el menú Ventana (después de insertar que en su boca), pero asegúrese de cambiar la acción que se desencadena el elemento de menú para su toggleMyViewFullScreen :. O puede invocar toggleMyViewFullScreen mediante programación o cuando se carga su aplicación.

Cuestiones relacionadas