在尝试制作全屏应用程序时,我遇到了一个奇怪的问题。我目前正在使用带有NSWindow
的{{1}}将屏幕显示在顶部,我将NSBorderlessWindowMask
子类化为接受键:
NSWindow
这很好用,我可以在我的窗口中使用键,并使用Command + Q退出应用程序。但是,当我尝试强制退出Mac上的应用程序时,屏幕冻结,我必须重启我的电脑。我的窗口中有一个简单的WebView:
- (BOOL) canBecomeKeyWindow
{
return YES;
}
我在另一台计算机上尝试过该应用程序,强制退出并不会冻结屏幕。两台计算机都运行OS X Mavericks。
请告诉我是否还有其他问题。
提前致谢,
颊
修改
我认为AppDelegate中的applicationWillTerminate方法可能是问题的一部分,但我不确定。为什么这种方法在另一台计算机上运行正常,但不是我的呢?
mainWindow = [[MyBorderWindow alloc] initWithContentRect:screenRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO screen:[NSScreen mainScreen]];
[mainWindow setLevel:windowLevel];
[mainWindow setBackgroundColor:[NSColor blackColor]];
[mainWindow makeKeyAndOrderFront:nil];
NSView *contentView = [mainWindow contentView];
WebView *customView = [[WebView alloc] initWithFrame:[contentView bounds]];
[customView setTranslatesAutoresizingMaskIntoConstraints:NO];
[contentView addSubview:customView];