我正在开发一个在 GNU/Linux 和 OS-X 上运行的应用程序。 在 Linux 上,如果我使用命令行启动应用程序,我没有问题。在 OS-X 上,应用程序启动但不在“前面”。我必须单击停靠栏中的图标才能查看该应用程序。有没有办法在开始时将应用程序放在前面。
最佳答案
这个问题与 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()
之前自己添加此调用,但对于实际分发您的应用程序,最好保持原样。
关于c - "Bring to front"OS-X 上的 GTK/C 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43918827/