Qt 碳元素、硅元素和显示窗口

Qt 碳元素、硅元素和显示窗口,qt,macos-carbon,Qt,Macos Carbon,我有一个Carbon LSUIElement应用程序,它在后台运行(可能在菜单栏中有一个图标,取决于pref),偶尔需要向用户显示一个对话框——有时是响应用户事件,有时是响应后台任务失败或类似情况 (我使用的是Qt4.5,因此应用程序是基于碳的;使用Qt4.6时,事情将基于可可粉,但听起来问题可能也存在) 问题是,当我打开一个窗口并展示它时,它不会被带到前面。我认为这是作为一个LSUIElement应用程序的一个特效。Qt使用碳纤维的SelectWindow和可可色的[MakeKeyandDer

我有一个Carbon LSUIElement应用程序,它在后台运行(可能在菜单栏中有一个图标,取决于pref),偶尔需要向用户显示一个对话框——有时是响应用户事件,有时是响应后台任务失败或类似情况

(我使用的是Qt4.5,因此应用程序是基于碳的;使用Qt4.6时,事情将基于可可粉,但听起来问题可能也存在)

问题是,当我打开一个窗口并展示它时,它不会被带到前面。我认为这是作为一个LSUIElement应用程序的一个特效。Qt使用碳纤维的SelectWindow和可可色的[MakeKeyandDerfront]将窗口(和应用程序)置于前端

为了解决这个问题,我尝试直接访问窗口服务器:(前几个步骤是获取WindowID,使用Qt-Cocoa会更简单,因为我可以使用NSWindow:nativeWindow)


这是可行的——窗口在前面,但没有突出显示或键盘聚焦。是否有其他步骤来解决这些问题,或者整个问题是否有更简单的解决方案?

使用SetFrontProcessWithOptions将窗口置于其他应用之前。

使用SetFrontProcessWithOptions将窗口置于其他应用之前。

尝试:

[NSApp activateIgnoringOtherApps: YES]
尝试:

[NSApp activateIgnoringOtherApps: YES]