如何让 2 个应用程序共享同一个 Dock 磁贴

Posted

技术标签:

【中文标题】如何让 2 个应用程序共享同一个 Dock 磁贴【英文标题】:How to make 2 applications shared the same dock tile 【发布时间】:2012-09-03 16:03:59 【问题描述】:

我在/Applications 的捆绑包中有一个启动器应用程序,它选择一个二进制文件并分叉/执行它。我想要的是让他们共享一个码头瓷砖。我尝试了几种方法,但没有一个令人满意。

1.将二进制文件与应用程序捆绑在一起

如果二进制文件包含在应用程序包中,这似乎可行。但是,捆绑包修改自身通常被认为是不好的做法,我不能保证用户对/Applications 具有写入权限。我尝试将符号链接添加到例如~/Library/Application Support/MyBinaries/mybinary 但这会给出一个单独的停靠图块。

2。将二进制文件保留在应用程序包之外

如果二进制文件在应用程序包之外,我会得到一个单独的停靠图块。为什么我不将其中一个进程设置为代理 s.t.其中一块瓷砖没有出现?这必须是启动器,因为用户不应该能够跳过启动器关于运行哪个二进制文件的逻辑。不幸的是,这意味着退出无法正常工作,并且您无法单击停靠栏来恢复二进制文件的窗口。可以通过在应用程序之间正确传递消息来使其工作。

3.大量 hacky 解决方案

通过添加额外的间接级别来实现此目的是一种相当老套的方法,其中/Applications/MyLauncher.app 的应用程序会在~/Library/Application Support/Launcher2.app 中启动另一个应用程序,其中包含其捆绑包中的二进制文件。只有第二个启动器有停靠图标。

这似乎很老套,所以我想我会向 SO 开放它,看看是否有人有更好的解决方案?

编辑

在选项 2 中,我将二进制文件单独打包。不要这样做。当我将它们保存在常规文件夹中时,一切正常。

【问题讨论】:

【参考方案1】:

回答我自己的问题。

如果您发现自己处于这种情况,请使用选项 2。将应用程序放在 /Applications/MyApplication.app 并将二进制文件保存在一个名为 ~/Library/Application Support/MyApplication/Binaries/ 的文件夹中,然后愉快地 fork/执行它们。绝对不要将它们放在应用程序包中,因为这是我困惑的根源。这解决了我的所有标准:

无需 root 访问权限即可修改二进制文件 启动器和二进制文件共享一个停靠磁贴 按 Dock 磁贴上的退出键退出二进制文件。 应用出现在 Launchpad 中 通过 Dock 启动需要通过启动器应用程序

【讨论】:

以上是关于如何让 2 个应用程序共享同一个 Dock 磁贴的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 6 个按钮(如 Windows 磁贴)创建布局

Dock Tile 插件不起作用

如何在 apache 磁贴中分配角色

Windows 10 多应用信息亭未打开所需站点或显示磁贴

如何每分钟更新一次我的 WP8 Silverlight 应用程序磁贴?

UWP Windows10开发更新磁贴和动态更新磁贴