【发布时间】:2011-08-18 08:41:09
【问题描述】:
我通过设置它的框架将我的 NSWindow 从正常模式切换到全屏(我知道有一种方法可以让视图全屏,但它需要这样)
在我的 NSOpenGLView 中,我正在跟踪 onMouseMove 事件...
切换到全屏(或返回)后,我必须单击视图(窗口内),才能接收 mouseMove 事件。看起来它失去了焦点,但我不明白为什么(我只是使用 setFrame)以及如何使其再次聚焦,而无需用户单击窗口。
我的 NSOpenGLView (NSView) 中的代码:
if (!fullscreenOn) {
//!switch to fullscreen mode
NSRect mainDisplayRect = [[[self window] screen] frame];
[[self window] setStyleMask:NSBorderlessWindowMask];
[[self window] setFrame:[[self window] frameRectForContentRect:mainDisplayRect] display:YES animate:NO];
[[NSApplication sharedApplication] setPresentationOptions: NSApplicationPresentationAutoHideMenuBar | NSApplicationPresentationAutoHideDock];
fullscreenOn = YES;
} else {
[[self window] setStyleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTexturedBackgroundWindowMask];
[[NSApplication sharedApplication] setPresentationOptions: NSApplicationPresentationDefault];
... some code for the right size ...
[[self window] setFrame:frame display: YES animate: YES];
fullscreenOn = NO;
}
【问题讨论】:
标签: objective-c cocoa