我需要检查文本字段是否有焦点,因为如果是,那么我可以隐藏它。
答案 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);
}