在任务控制中将窗口移动到新空间

时间:2011-08-13 08:19:26

标签: objective-c cocoa spaces osx-lion mission-control

我想编写一个小工具,在OS X Lion中将窗口从一个空间移动到另一个空间。我不在乎该实用程序是用AppleScript还是Objective-C编写的。我似乎无法弄清楚的是给出一个窗口,我该如何将它移动到不同的空间。我在this帖子中看到了很多有用的信息,但没有关于如何实际移动窗口的信息。如果有人有任何想法或想法,我很感激听到他们。感谢。

2 个答案:

答案 0 :(得分:3)

如果您正在使用objective-c调用,那么除了一个问题之外,在10.7中的空格之间移动实际上与10.6相同。空间ID是基于10.6的索引,但基于10.7中的其他内容(不完全是GUID)。

如果您的窗口已经在正确的空间中,则解决方案in this question将起作用(我在csshX中使用它)。您可以使用CGSGetWindowWorkspace获取空间ID,然后使用CGSMoveWorkspaceWindowList在另一个窗口上设置它。

现在,如果您没有空间ID,例如你只想把窗户移到第二个空间 - 然后我就像你一样难过。我正在寻找空间id和索引号之间的联系。 (如果我发现,会更新这个答案)

最后,你在上面的评论中提到了App Store - 这是不合适的,因为CGS *调用使用的是无证的私有框架,会让你被拒绝。

答案 1 :(得分:-1)

你需要使用一个自定义库,可以在http://macscripter.net/viewtopic.php?id=23453找到,但是我不确定它在狮子身上有什么样的支持。