我有一个带有系统托盘图标的AIR应用程序。单击时,它会显示并激活应用程序。当应用程序被隐藏(停靠)时,这正如预期的那样工作,但是如果我选择另一个应用程序以便我的应用程序在后台,则单击系统托盘图标不会执行任何操作。
奇怪的是,我在系统托盘图标上也有一个上下文菜单,它有一个恢复选项,它调用与ScreenMouseEvent.CLICK相同的事件处理程序,但仍有效。
我希望它与更改焦点的上下文菜单有关,也许这是AIR如何使用系统托盘的错误,也许这只是我缺少的东西。很高兴知道是否是这种情况。
提前致谢
罗布
答案 0 :(得分:3)
//instead of just calling
activate();
//call
nativeApplication.activate()
//or even better
nativeApplication.activate(nativeWindow);
根据OP的输入进行更新:如果您为应用程序打开了多个窗口,请使用:
nativeApplication.activate(nativeApplication.openedWindows[0]);
如果您不在主WindowedApplication
类中,则可以使用静态属性NativeApplication.nativeApplication
来获取对单例对象的引用。
WindowedApplication.activate()
激活基础NativeWindow(即使此应用程序不是活动应用程序)。
NativeApplication.activate(window:NativeWindow = null)
激活此应用程序。如果操作系统允许激活,则激活指定的窗口并将其带到桌面前台;也就是说,在其他应用程序的窗口前面。 (如果window参数为null,则激活此应用程序的可见窗口。)
livingocs并不清楚为什么会这样。它说activate()
激活了底层的原生窗口 - 人们会希望它在被激活时被带到前面,但这种情况并没有发生。