Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“带到前面去”;OS-X上的GTK/C应用程序_C_Macos_Gtk - Fatal编程技术网

&引用;“带到前面去”;OS-X上的GTK/C应用程序

&引用;“带到前面去”;OS-X上的GTK/C应用程序,c,macos,gtk,C,Macos,Gtk,我正在开发一个运行在GNU/Linux和OS-X上的应用程序。 在linux上,如果我用命令行启动应用程序,我没有问题。在OS-X上,应用程序启动,但不在“前端”。我必须单击dock中的图标才能看到应用程序。有没有一种方法可以让应用程序一开始就出现在前台。这个问题与OS X的进程启动模型有关,而不是GTK+。唯一正确且可持续的解决方法是使用.app捆绑包 在使用OS X运行应用程序时,应用程序需要在使用NSApplication方法activateIgnoringOtherApps:设置其激活策

我正在开发一个运行在GNU/Linux和OS-X上的应用程序。
在linux上,如果我用命令行启动应用程序,我没有问题。在OS-X上,应用程序启动,但不在“前端”。我必须单击dock中的图标才能看到应用程序。有没有一种方法可以让应用程序一开始就出现在前台。

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

在使用OS X运行应用程序时,应用程序需要在使用
NSApplication
方法
activateIgnoringOtherApps:
设置其激活策略后明确要求被带到前台。但是,当Launch Services启动
.app
捆绑包时,它会自动处理此问题。在代码中显式调用
activateIgnoringOtherApps:
,只会让事情变得更复杂,让一切正常


基于同样的理由,GTK+本身也不会进行此调用。如果你想进行开发,你可以在
gtk\u main()
之前添加这个调用,但是为了实际分发你的应用程序,最好保持原样。

你有没有尝试过
gtk\u window\u set\u emergency\u hint()
?好的,多亏了你,我做到了。在Glade中,我将属性“紧急提示”设置为TRUE。它正在发挥作用。所以你是对的。非常感谢。哦,不,对不起。如果
gtk_window_present()
不起作用,它可能是OSX bug上的gtk,什么gtk版本?gtk_window_present DOR确实不起作用。我用的是最新的稳定版本。谢谢。这个答案很有帮助。