我正在开发一个跨平台的命令行应用程序(在C ++上
在OSX上的Win / Linux和ObjC ++)有时创建一个OpenGL
上下文。显然,OpenGL上下文和窗口创建代码
不同的平台有所不同,但在OSX上完成了它
NSOpenGLView
和NSWindow
。没有笔尖,它没有构建
Xcode(它使用跨平台构建脚本)。
在OSX上,窗口创建并且工作正常,但是OpenGL窗口
没有出现在应用程序切换器(Cmd-Tab
)中。这意味着
如果你在其他方面失去它,那么找到窗户是很棘手的
窗户,往往只能通过前往Mission
控制/曝光。
我的问题是:是否有一种编程方式(即要发送给的消息)
NSWindow
对象或NSApplication
)以确保(unix-style)
命令行应用程序将显示在Cmd-Tab
列表中
窗口是否已创建?
答案 0 :(得分:0)
您需要将流程从附件转换为常规应用。致电[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]
。
但是,一旦你这样做,该应用程序在活动时也会有一个菜单栏。这很好,因为它是用户期望的。但是,您可能需要在该菜单栏的菜单中添加适当的项目,以获得不错的用户体验。
您的应用程序将显示在Dock以及Command-Tab应用程序切换器中。默认情况下,非捆绑式可执行文件将获得一个看起来像CRT显示的图标,显示单词" exec"。您可以使用[NSApp setApplicationIconImage:someImage]
设置更好的图标,但Dock会在进程退出时恢复显示通用可执行图标。