uso una televisor seleccionada reproducirá reconoce proyector película pantallas pantalla macbook mac las imac externo externa duplicar distorsiona detecta cuando conexión conectar conectadas como cocoa fullscreen

cocoa - una - macbook air no detecta monitor externo



Visualice la pantalla completa de os x window en el monitor secundario usando Cocoa (3)

Estoy trabajando en una aplicación Cocoa Mac donde necesito mostrar una ventana / vista en un monitor secundario, pantalla completa. Sé cómo crear una ventana que se pueda arrastrar al monitor secundario, pero quería crear programáticamente la ventana y hacerla en pantalla completa en el monitor externo. Gracias por la ayuda.


Primero, determine qué pantalla desea usar repitiendo sobre [pantallas de NSScreen].

Crea 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.


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

Vea la documentación de Apple .

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

Puede usar [NSScreen screens] para obtener la lista de pantallas disponibles. Mira aquí para más detalles.


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) }]; }]; } }

Puede conectar esto al elemento de menú a pantalla completa en el menú Ventana (después de insertarlo en su plumín), pero asegúrese de cambiar la acción que el elemento de menú activa a su alternarMyViewFullScreen:. O puede invocar toggleMyViewFullScreen mediante programación o cuando se carga su aplicación.