首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有NSWindowCollectionBehaviorStationary的NSWindow在控制面板上可见。这是一个bug吗?

带有NSWindowCollectionBehaviorStationary的NSWindow在控制面板上可见。这是一个bug吗?
EN

Stack Overflow用户
提问于 2011-11-27 19:14:52
回答 2查看 1.8K关注 0票数 56

我正在尝试让我的NSWindow

  1. 在所有空间上都可见显示桌面时(按F11)
  2. 在任务空间中不可见
  3. 不可见

下面的代码确实做到了这一点,但有一个副作用:

代码语言:javascript
复制
[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces
                            | NSWindowCollectionBehaviorStationary ];

切换到Mac OS X Lion上的仪表板时,窗口与仪表板项目一起保持可见状态一秒钟,然后隐藏。

这是预期行为还是bug?我的应用程序的用户发现,在窗口消失之前在仪表板上看到它们会让人感到困惑。我希望它们只在空间上显示,而不是在仪表板上显示。

EN

回答 2

Stack Overflow用户

发布于 2012-11-14 03:38:38

我查看了http://cocoadev.com/wiki/DontExposeMe搜索解决方法

没有什么是真正有效的,除了。

代码语言:javascript
复制
self.window.level = kCGDesktopWindowLevel;

现在可以检测更改以公开并设置then :) ...

请看How can one detect Mission Control or Command-Tab switcher superseding one's program in OS X? :) 可能会在那里找到答案

票数 3
EN

Stack Overflow用户

发布于 2012-11-02 00:42:45

我能够重现这种行为,我认为这只是苹果方面的一点错误动画。

为了更好地解释这一点,我创建了一个新项目,将这两行添加到applicationDidFinishLaunching:中,然后运行它。

代码语言:javascript
复制
[self.window setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorStationary ];
[self.window setHidesOnDeactivate: YES];

(self.window是创建新项目时自动创建的窗口。无论如何,这在这里并不重要,只要它是一个出现在屏幕上的窗口)。

现在注意这个行为:当从一个你可以看到你的窗口的空间切换到另一个有其他应用程序的其他窗口的地方时(所以你的窗口应该消失,因为你的应用程序将被停用),你的窗口只有在动画结束时才会消失。那么,到底发生了什么呢?

这是我认为发生的情况:当从一个空间切换到另一个空间时,在所有空间上显示的窗口只对动画之后的变化做出反应,因此你的窗口在仪表板上会短暂地出现。我想你会注意到它恰好在幻灯片动画结束时消失了。

所以,不幸的是,我不知道如何解决你的问题。事情似乎就是这样发生的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8285137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档