Display os x Fenster Vollbild auf sekundären Monitor Cocoa mit
-
03-07-2019 - |
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.
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
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.