TideSDK - 将子窗口始终设置为主窗口的大部分

时间:2014-02-24 18:37:26

标签: javascript tidesdk

我有一个项目,其中包括创建一个适用于其他应用程序的应用程序。我的应用程序始终位于顶部,并允许透明度与以下应用程序进行交互。一切顺利,我已经将topMost(true)应用到应用程序中并且确定无误。

因为我在获取窗口对话框时遇到问题(警报但没有提示或确认)以保持与我的主窗口的交互无效直到它被关闭 - https://groups.google.com/forum/#!topic/tidesdk/yYkEcC6X5y0 - 我不得不创建自己的对话框窗口。我设法通过创建一个子窗口来创建一个子窗口,将其属性topMost设置为true,并且每当有一个atemp激活/聚焦主窗口时,总是重新聚焦对话框。

当我需要创建另一个窗口来充当Photoshop浮动工具窗口时,我的问题就来了。在使用主应用程序和对话框进行迭代时,此窗口会失去焦点并进入主窗口下方。我需要这个窗口始终保持在主窗口和对话框工具之上,以便UX得到正确的结果。

我已经设法让窗户保持在最顶层,但是我正在玩焦点并且没有对所有窗户进行聚焦,而且它变得一团糟。

有没有人不能如何从主窗口及其所有子窗口设置顺序?

谢谢,

彼得

2 个答案:

答案 0 :(得分:0)

我已经设法快速解决了这个问题,所以这就是:

创建所有窗口(主窗口,工具和对话框)时,我只在方法createWindow上使用topMost param属性 (https://github.com/TideSDK/TideSDK-doc/tree/master/source/guides/getting_started#window-elements)。

在主窗口中,我只使用tiapp.xml属性 (https://github.com/TideSDK/TideSDK-doc/tree/master/source/guides/getting_started#tiappxml-configuration)。

只有在工具窗口中我才在窗口init(一次执行)调用方法setTopMost(true)。通过这种方式,窗口将永远保持最佳状态。

最后,对于对话框,每当用户尝试与工具或主窗口进行交互时,我都会强制对焦。

所以顺序就是这样(从上到下)

  • 对话框(xml属性topMost并始终强制关注)
  • tools(init上的xml属性topMost和setTopMost方法)
  • window(xml property topMost)

答案 1 :(得分:0)

原来之前的解决方案未经过正确测试。主应用程序没有将tiapp.xml定义为最高的true。所以我想我需要深入研究这个问题

:(