"Bring to front" GTK/C 申请 OS-X

"Bring to front" a GTK/C application on OS-X

我正在 GNU/Linux 和 OS-X 上开发应用程序 运行。 在 linux,如果我使用命令行启动应用程序,我没有问题。在 OS-X 上,应用程序启动但不在 "front" 上。我必须单击停靠栏中的图标才能查看该应用程序。有没有办法在开始时将应用程序放在前面。

此问题与 OS X 的进程启动模型有关,与 GTK+ 无关。解决此问题的唯一正确且可持续的方法是使用 .app 捆绑包。

当 运行 带有 OS X 的应用程序时,该应用程序需要在使用 NSApplication 方法 activateIgnoringOtherApps: 设置其激活策略后明确要求置于最前面.然而,当 Launch Services 启动一个 .app 包时,它会自动处理这个问题。在您的代码中显式调用 activateIgnoringOtherApps: 只会让事情变得更复杂,让您把一切都做好。 I asked this question a while ago; the answer there explains in more detail.

出于同样的原因,GTK+ 本身也不进行此调用。如果您想要开发,可以在 gtk_main() 之前自己添加此调用,但对于实际分发您的应用程序,最好保持原样。