Macos Cmd选项卡上的Mac OS X Fullsreen开关

Macos Cmd选项卡上的Mac OS X Fullsreen开关,macos,fullscreen,switching,Macos,Fullscreen,Switching,我的游戏(兼容Mac OS X 10.5)需要一个功能,可以在Cmd Tab命令上从全屏模式切换(最小化)并在此时离开焦点,这样用户可以在我的游戏最小化时使用其他应用程序(例如浏览器)。如何做到这一点 谢谢大家! 我不确定,你的问题是什么。如果你想知道,你是如何做到平衡的,那么你可以使用 NSWindowWillExitFullScreenNotification 或 关于这个windows协议的更多信息,您可以在这里找到:我不确定,您的问题是什么。如果你想知道,你是如何做到平衡的,那么

我的游戏(兼容Mac OS X 10.5)需要一个功能,可以在Cmd Tab命令上从全屏模式切换(最小化)并在此时离开焦点,这样用户可以在我的游戏最小化时使用其他应用程序(例如浏览器)。如何做到这一点


谢谢大家!

我不确定,你的问题是什么。如果你想知道,你是如何做到平衡的,那么你可以使用

   NSWindowWillExitFullScreenNotification


关于这个windows协议的更多信息,您可以在这里找到:

我不确定,您的问题是什么。如果你想知道,你是如何做到平衡的,那么你可以使用

   NSWindowWillExitFullScreenNotification


有关此windows协议的更多信息,请参见此处:

谢谢Matthias!我找到了解决方案,问题是我的全屏窗口是一个顶部窗口[fullscreenWindow setLevel:NSScreenSaverWindowLevel-1];所以它每次都捕捉到了所有的事件。我使用这种方法来捕捉我的应用程序失去/获得焦点的时刻,以及我在所有窗口中隐藏/取消隐藏我的应用程序的时刻:

- (void)applicationWillBecomeActive:(NSNotification *)aNotification
{
       [mApp unhide:self];
}
- (void)applicationWillResignActive:(NSNotification *)aNotification
{

     [mApp hide:self];

}
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    mApp=[aNotification object];
}

谢谢Matthias!我找到了解决方案,问题是我的全屏窗口是一个顶部窗口[fullscreenWindow setLevel:NSScreenSaverWindowLevel-1];所以它每次都捕捉到了所有的事件。我使用这种方法来捕捉我的应用程序失去/获得焦点的时刻,以及我在所有窗口中隐藏/取消隐藏我的应用程序的时刻:

- (void)applicationWillBecomeActive:(NSNotification *)aNotification
{
       [mApp unhide:self];
}
- (void)applicationWillResignActive:(NSNotification *)aNotification
{

     [mApp hide:self];

}
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
    mApp=[aNotification object];
}

它可能很有用,但主要问题是我的应用程序在全屏显示时无法释放焦点,因此用户无法切换到任何其他应用程序。我刚刚看到,您提到的MacOSX 10.5。全屏模式是在10.7中引入的。不,全屏模式本身工作正常,它只是OpenGL全屏显示在一个无边框的窗口中,大小与屏幕相同。@Aonir好吧,这不是所谓的全屏模式。但是,我看不出与普通窗口的区别。你在做一些特殊的输入吗?通常,如果您没有在NSApplicationPresentationOptions中设置NSApplicationPresentationDisableProcessSwitching之类的内容,则会为您进行切换,并通知您的应用程序。这可能很有用,但主要问题是我的应用程序在全屏显示时无法释放焦点,因此用户无法切换到任何其他应用程序我只需看到,你说的是MacOSX 10.5。全屏模式是在10.7中引入的。不,全屏模式本身工作正常,它只是OpenGL全屏显示在一个无边框的窗口中,大小与屏幕相同。@Aonir好吧,这不是所谓的全屏模式。但是,我看不出与普通窗口的区别。你在做一些特殊的输入吗?通常,如果未在NSApplicationPresentationOptions中设置NSApplicationPresentationDisableProcessSwitching之类的内容,则会为您进行切换,并通知您的应用程序。