我正在尝试让我的NSWindow
:
F11
) 下面的代码确实做到了这一点,但有一个副作用:
[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces
| NSWindowCollectionBehaviorStationary ];
切换到Mac OS X Lion上的仪表板时,窗口与仪表板项目一起保持可见状态一秒钟,然后隐藏。
这是预期行为还是bug?我的应用程序的用户发现,在窗口消失之前在仪表板上看到它们会让人感到困惑。我希望它们只在空间上显示,而不是在仪表板上显示。
发布于 2012-11-14 03:38:38
我查看了http://cocoadev.com/wiki/DontExposeMe搜索解决方法
没有什么是真正有效的,除了。
self.window.level = kCGDesktopWindowLevel;
现在可以检测更改以公开并设置then :) ...
请看How can one detect Mission Control or Command-Tab switcher superseding one's program in OS X? :) 可能会在那里找到答案
发布于 2012-11-02 00:42:45
我能够重现这种行为,我认为这只是苹果方面的一点错误动画。
为了更好地解释这一点,我创建了一个新项目,将这两行添加到applicationDidFinishLaunching:
中,然后运行它。
[self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorStationary ];
[self.window setHidesOnDeactivate: YES];
(self.window是创建新项目时自动创建的窗口。无论如何,这在这里并不重要,只要它是一个出现在屏幕上的窗口)。
现在注意这个行为:当从一个你可以看到你的窗口的空间切换到另一个有其他应用程序的其他窗口的地方时(所以你的窗口应该消失,因为你的应用程序将被停用),你的窗口只有在动画结束时才会消失。那么,到底发生了什么呢?
这是我认为发生的情况:当从一个空间切换到另一个空间时,在所有空间上显示的窗口只对动画之后的变化做出反应,因此你的窗口在仪表板上会短暂地出现。我想你会注意到它恰好在幻灯片动画结束时消失了。
所以,不幸的是,我不知道如何解决你的问题。事情似乎就是这样发生的。
https://stackoverflow.com/questions/8285137
复制相似问题