I'm working on a Cocoa Mac app where I need to display a window/view on a secondary monitor, full-screen.
I know how to create a window that could be dragged onto the secondary monitor, but I was wanting to programmatically create the window and make it full screen on the external monitor.
First, determine which screen you want to use by iterating over [NSScreen screens]
.
Create a full screen window with:
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()];
You might want to google CGDisplayCapture()
as well.
You can call the enterFullScreenMode:withOptions:
method of NSView
to acheieve the desired behaviour.
See Apple's documentation.
Read here and here for the options that can be supplied to this method.
You can use [NSScreen screens]
to get the list of available screens. See here for details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With