代码之家  ›  专栏  ›  技术社区  ›  robmcm

windows上的application.application.native window.activate()问题

  •  4
  • robmcm  · 技术社区  · 15 年前

    我有一个带有系统托盘图标的Air应用程序。点击后,它会显示并激活应用程序。当应用程序被隐藏(停靠)时,这是正常的,但是如果我选择了另一个应用程序,使我的应用程序处于后台,单击系统托盘图标什么也不做。

    奇怪的是,我在系统托盘图标上也有一个上下文菜单,它有一个恢复选项,这调用了与screenmouseEvent.click相同的事件处理程序,但仍然有效。

    我想这和上下文菜单改变焦点有关,也许是空气如何与系统托盘一起工作的问题,也许只是我遗漏了一些东西。如果是这样的话,那就好了。

    提前谢谢

    罗布

    1 回复  |  直到 14 年前
        1
  •  3
  •   Amarghosh    15 年前
    //instead of just calling
    activate();
    
    //call
    nativeApplication.activate()
    
    //or even better
    nativeApplication.activate(nativeWindow);
    

    根据Op的输入进行更新:如果应用程序打开了多个窗口,请使用:

    nativeApplication.activate(nativeApplication.openedWindows[0]);
    

    如果你不在主队 WindowedApplication 类,可以使用静态属性 NativeApplication.nativeApplication 获取对singleton对象的引用。

    WindowedApplication.activate()

    激活底层的NativeWindow(即使此应用程序不是活动的)。

    NativeApplication.activate(window:NativeWindow = null)

    激活此应用程序。如果操作系统允许激活,那么指定的窗口将被激活并带到桌面前台,即在其他应用程序的窗口前面。(如果window参数为空,则激活此应用程序的可见窗口。)

    LiveDocs不清楚为什么会发生这种情况。它说 activate() 激活底层的本机窗口-当激活它时,人们希望它被带到前面,但这并没有发生。

    推荐文章