可可 - 自发地改变空间

时间:2016-04-08 23:48:41

标签: macos cocoa nswindow

我写了一个作为后台应用程序的项目,我有这个小问题。

假设我的mac上有3个打开的桌面(空格):

  1. 从我的项目中打开NSWindow的空间
  2. 没有打开文件夹应用的空白空间
  3. 空格,例如打开文件夹
  4. 我目前在1号空间。

    我向左滑动3个手指以切换到空白空间,然后再次切换到打开文件夹的空间(立即获得焦点)。

    然后我向右滑动3个手指从第3个空间切换到第2个,发生的是它(IMO)知道,没有一个单独的NSWindow可以集中注意力,所以它切换到第一个空间(没有我)甚至触摸触摸板)和我的应用程序中的NSWindow现在重点关注。

    我的问题是 - 如何防止这种情况?我的意思是,我不记得故意设置这样的东西(我的应用程序是基于获取当前的焦点NSWindow,但只有当用户点击窗口)。

1 个答案:

答案 0 :(得分:0)

我怀疑当您第一次切换到空间2时,您的应用程序仍然处于活动状态。然后,当您从空间3切换回2时,您的应用程序将重新激活(因为它是该空间上的最后一个活动状态),这使得你的应用程序窗口是主/关键窗口,默认行为是当它变为主/关键时切换到窗口的空间。

您可以使用系统偏好设置>更改系统行为任务控制>切换到应用程序时,切换到应用程序打开窗口的Space。

您可以通过将窗口的collectionBehavior属性设置为包含NSWindowCollectionBehaviorMoveToActiveSpace来更改应用的行为,但这会导致应用的窗口移动到空间2.这也可以使用属性在IB中设置检查员。