将 window 从停靠栏图标移动到其他

Move window from dock icon to other

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

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

这是另一个应用程序的挂钩,因此我无法控制代码,但我可以自由 运行 我需要在挂钩中使用任何 C 代码。

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

非常感谢,我为此苦苦挣扎了很多,我研究了 setCollectionBehavior 无济于事。我还查看了 dockTile 的 属性 for NSApplication 但是我无法弄清楚如何 setDockTile 到另一个 PID.

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

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

windows 的所有权也不能在应用程序之间转移。