如何检查TextField是否集中在Libgdx中?

时间:2014-01-24 22:04:44

标签: java libgdx textfield

我需要检查文本字段是否有焦点,因为如果是,那么我可以隐藏它。

3 个答案:

答案 0 :(得分:3)

您可以使用FocusListener并将其添加到TextField。 William Reeds soulution也应该可以工作,但也可以通过调用TextField中的方法next(boolean up)或者如果启用此选项(setFocusTraversal(boolean focusTraversal))则按“tab”切换到下一个TextField。在这种情况下,ClickListener不行。 试试这个并告诉我它是否有效我不确定......

答案 1 :(得分:2)

要使Libgdx中的TextField具有焦点,必须单击它。因此,对此的解决方案是将ClickListener添加到文本字段。

这是一个例子。

    TextField text = new TextField("Text", skin);
    text.addListener(new ClickListener(){
        public void clicked(InputEvent e, float x, float y) {
            //perform some action once it is clicked.
        }
    });

答案 2 :(得分:0)

如果您只想检查演员是否专注,您可以使用Stage#getKeyboardFocus()Stage#getScrollFocus(),这将返回当前正在关注键盘或滚动输入的演员。在这种情况下,代码可能如下所示:

if (stage.getKeyboardFocus() == textField) {
    stage.unfocus(textField);
}