Какао полноэкранное окно на дополнительном дисплее - PullRequest
2 голосов
/ 03 января 2011

У меня есть следующий код, который работает в основном отдельно от того, что я никогда не вижу myWindow, который я создаю.Если я сделаю [myWindow isVisible], то вернется 1.CGDisplayCapture отлично работает, так как он закрывает экран.Я проверил все переменные, которые я передаю в метод инициализации NSWindow.

Я что-то упустил действительно очевидное?Вот код:

// Find the screen we want
NSScreen *screen                = [[NSScreen screens] objectAtIndex:1];
NSNumber *displayID             = [[screen deviceDescription] 
                                  objectForKey:@"NSScreenNumber"];
CGDirectDisplayID CGDisplayID   = (CGDirectDisplayID) [displayID intValue];

// Capture the secondary display
if (CGDisplayCapture( CGDisplayID ) != kCGErrorSuccess) {
  NSLog( @"Couldn't capture the secondary display" );
}

// Draw a new window to fill the screen
NSRect screenRect = [screen frame];
NSWindow *myWindow = [[NSWindow alloc] initWithContentRect:screenRect
                                               styleMask:NSBorderlessWindowMask
                                                 backing:NSBackingStoreBuffered
                                                   defer:NO
                                                  screen:screen];

// Set the level of the new window and other settings
NSInteger windowLevel = CGShieldingWindowLevel();
[myWindow setLevel: windowLevel];
[myWindow setBackgroundColor:[NSColor blueColor]];
[myWindow makeKeyAndOrderFront:nil];

Приветствия

Ответы [ 2 ]

3 голосов
/ 03 января 2011

Если вам требуется 10,5 или выше, , пожалуйста используйте NSView -enterFullScreenMode: withOptions: и соответствующие -exitFullScreenModeWithOptions :.Это должным образом переносит ответственность на контейнерное представление (у которого все еще может быть свой собственный сложный набор подпредставлений) и освобождает вас от некоторых хитростей ручного связывания с уровнями окна и т. Д.

1 голос
/ 03 января 2011

Как выглядит это окно, если вы не делаете его полноэкранным?

Я не вижу, чтобы вы добавляли какие-либо виды в создаваемое окно. Если представление содержимого вашего окна является экземпляром NSView, оно не будет рисовать.

...