Frage

Ich arbeite an einem Cocoa Mac app, wo ich brauche ein Fenster / Ansicht auf einem zweiten Monitor, Vollbild angezeigt werden soll. Ich weiß, wie ein Fenster erstellen, die auf den sekundären Monitor gezogen werden konnten, aber ich war zu wollen programmatisch das Fenster erstellen und Vollbild auf dem externen Monitor machen. Danke für die Hilfe.

War es hilfreich?

Lösung

Zuerst bestimmen, welchen Bildschirm Sie durch Iteration über [NSScreen Bildschirm] verwendet werden sollen.

Erstellen Sie ein Vollbild-Fenster mit:

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

Sie möchten vielleicht CGDisplayCapture () als auch an Google.

Andere Tipps

Sie können die enterFullScreenMode:withOptions: Methode von NSView nennen das gewünschte Verhalten acheieve.

Siehe Dokumentation Apple

Lesen hier und hier .

Die Vollbild-Fenster-Animationen sind abgehackt und nicht gut aussehen meiner Meinung nach. Die Vollbild-Ansicht ist viel glatter.

Versuchen Sie folgendes:

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

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

Sie können diesen Menüpunkt im Menü Fenster (danach in der Spitze Einfügen) aber sicher sein, um die Aktion zu ändern, dass der Menüpunkt Feuer auf Ihre toggleMyViewFullScreen zum Vollbild verbinden. Oder Ihr kann aufrufen toggleMyViewFullScreen programmatisch oder wenn Ihre Anwendung geladen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top