将窗口从停靠图标移动到其他

时间:2015-03-14 01:40:43

标签: objective-c macos core-foundation

在Windows 7中,我通过更改System.AppUserModel.ID来将窗口从任务栏上的一个组移动到另一个组(组按进程ID):https://msdn.microsoft.com/en-us/library/windows/desktop/dd391569%28v=vs.85%29.aspx

我现在正试图在Mac OS X中做同样的事情。

这是另一个应用程序的钩子,所以我无法控制代码,但是我可以自由地运行我需要的任何C代码。

我打开一个新的应用程序,LSUIElement设置为1,因此没有停靠图标(但是如果我在没有LSUIElement的情况下启动它,它会获得自己的停靠图标)。所以现在这有一个不同的进程ID。我想将此窗口移动到原始应用程序的停靠图标中。这可能吗?

我最诚挚的谢谢,我一直在努力解决这个问题,我研究setCollectionBehavior无济于事。我还查看了dockTile NSApplication的属性,但是我无法弄清楚setDockTile如何与另一个PID相同。

1 个答案:

答案 0 :(得分:2)

这是不可能的。 OS X不像Windows那样工作。

中心组织原则是应用程序,而不是窗口。应用程序本质上是单个进程(在单独的进程中可以有帮助程序,但这不会反映在Dock或Command-Tab应用程序切换器中;帮助程序通常没有UI)。 Dock显示应用程序,而不是窗口组或类似的东西。

Windows的所有权也无法在应用程序之间传输。