我在 mi fxml 文件中得到了这样的东西:
<TextField fx:id="id" onInputMethodTextChanged="#foo" prefWidth="200.0" promptText="" />
但是当我运行它时,我用 TAB 键或鼠标移出 TextField 控件,但什么也没有发生(没有调用“foo”)。
最佳答案
仅当平台支持 ConditionalFeature.INPUT_METHOD
时,TextField
的 onInputMethodTextChanged
属性才适用。要检查这个试试
Platform.isSupported(ConditionalFeature.INPUT_METHOD)
如果您正在尝试在用户将注意力从文本字段移出时执行某些操作,请尝试
textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if(!newValue) {
System.out.println("Focusing out from textfield");
}
}
});
关于失去焦点后不调用 JavaFX onInputMethodTextChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956061/