我以这种方式全屏:
NSRect frame = [[NSScreen mainScreen] frame];
// Instantiate new borderless window
fullscreenWindow = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered defer: NO];
startingWindow = [self window];
[startingWindow setAcceptsMouseMovedEvents:NO];
[startingWindow orderOut:nil];
if(fullscreenWindow != nil)
{
// Set the options for our new fullscreen window
[fullscreenWindow setReleasedWhenClosed: YES];
[fullscreenWindow setAcceptsMouseMovedEvents:YES];
[fullscreenWindow setContentView: self];
[fullscreenWindow makeKeyAndOrderFront:self ];
[fullscreenWindow setLevel: NSPopUpMenuWindowLevel-1];
[fullscreenWindow makeFirstResponder:self];
}
切换到全屏后无法正常工作keyDown和keyUp。 怎么做才能让它发挥作用?
提前致谢。
最好的问候Chudziutki
答案 0 :(得分:1)
你为什么要自己做这一切?只需向您的视图发送-enterFullScreenMode:withOptions:
消息即可。
答案 1 :(得分:1)
您需要使用自己继承自NSWindow的类覆盖NSWindow类。然后重写keyDown和keyUp事件消息以捕获它们。然后,您将这些事件传递给任何需要它们的人。