Domanda

Sto lavorando su un'app Cocoa Mac in cui devo visualizzare una finestra / vista su un monitor secondario, a schermo intero. So come creare una finestra che può essere trascinata sul monitor secondario, ma volevo creare programmaticamente la finestra e renderla a schermo intero sul monitor esterno. Grazie per l'aiuto.

È stato utile?

Soluzione

Per prima cosa, determina quale schermata vuoi usare ripetendo su [Schermate NSScreen].

Crea una finestra a schermo intero 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()];

Potresti anche voler google CGDisplayCapture ().

Altri suggerimenti

È possibile chiamare il metodo enterFullScreenMode: withOptions: di NSView per raggiungere il comportamento desiderato.

Vedi documentazione di Apple .

Leggi qui e qui per le opzioni che possono essere fornite a questo metodo.

È possibile utilizzare [Schermate NSScreen] per ottenere l'elenco delle schermate disponibili. Vedi qui per i dettagli.

Le animazioni della finestra a schermo intero sono instabili e secondo me non sembrano belle. La visualizzazione a schermo intero è molto più fluida.

Prova questo:

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

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

Puoi collegarlo alla voce di menu a schermo intero nel menu Finestra (dopo averla inserita nel pennino) ma assicurati di cambiare l'azione che la voce di menu attiva sul tuo toggleMyViewFullScreen:. Oppure puoi invocare toggleMyViewFullScreen a livello di codice o quando l'app viene caricata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top