schermo intero finestra x display os sul monitor secondario in Cocoa

voti
12

Sto lavorando su un'applicazione Cocoa per Mac dove ho bisogno di visualizzare una finestra / vista su un monitor secondario, a schermo intero. So come creare una finestra che poteva essere trascinata sul monitor secondario, ma mancava di creare programatically finestra e renderlo pieno schermo sul monitor esterno. Grazie per l'aiuto.

È pubblicato 30/12/2008 alle 18:36
fonte dall'utente
In altre lingue...                            


3 risposte

voti
12

In primo luogo, determinare quale schermata che si desidera utilizzare per l'iterazione di [schermi NSScreen].

Creare 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()];

Si potrebbe desiderare di google CGDisplayCapture () pure.

Risposto il 30/12/2008 a 19:29
fonte dall'utente

voti
4

È possibile chiamare il enterFullScreenMode:withOptions:metodo NSViewper acheieve il comportamento desiderato.

Vedere la documentazione di Apple .

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

È possibile utilizzare [NSScreen screens]per ottenere l'elenco degli schermi disponibili. Vedi qui per maggiori dettagli.

Risposto il 30/12/2008 a 19:36
fonte dall'utente

voti
0

Le animazioni finestra a schermo intero sono mosso e non vanno bene a mio parere. La vista a schermo intero è molto più agevole.

Prova questo:

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

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

È possibile collegare questo alla voce di menu a schermo intero nel menu Finestra (dopo aver inserito dentro il vostro pennino), ma essere sicuri di cambiare l'azione che la voce di menu fuochi a vostra toggleMyViewFullScreen:. O il vostro può invocare toggleMyViewFullScreen a livello di codice o quando i carichi di app.

Risposto il 22/01/2015 a 07:56
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more