明亮脚本中的active和setFocus()有什么区别?

时间:2019-07-15 10:25:07

标签: roku brightscript

我是Roku世界的新手,我正在编写两个文本框。 TextEditbox1 active = true以显示光标,并按下该键,而另一个texteditbox2 active = true则是将texteditbox1隐藏,然后显示Texteditbox2光标。问题是。我使用setFocus()而不是active通过两键执行类似的操作。这是完美的工作。但是我尝试使用Active属性通过两个文本框维护向下键和向上键。有可能吗?

我尝试了以下内容。

TextEditBox1  active = true cursor is displayed

TextEditBox2 active = true cursor is displayed and TextEditBox1 cursor is hidden

我有两个按钮的相同操作,但操作成功。

Button1 setfocus true focus is available

Button2 setfocus true focus is available and Button1 setfocus is hidden

1 个答案:

答案 0 :(得分:1)

这是愚蠢的但

  • active仅在TextEditBox中显示闪烁的光标

何时

    当TextEditBox处理setFocus()事件时,
  • keyPress为其提供实际的焦点

我认为,正确使用它的唯一方法是通过设置active=true而不关注它来模仿专注于该组件,因为它阻止了所有关键事件。您可能会创建一个包装器组件,该组件将获得焦点,然后设置active=true而不会向下传递。并且(例如)当用户按下“确定”按钮时,该组件将显示KeyboardDialog。

UPD:

clearOnDownKey="false"可能会让您免于痛苦