2

我有一个小问题:我的文本字段一直在选择自己,例如,如果我在应用程序之间使用 alt-tab。

对于我的应用程序,不需要也不会使用文本选择 - 所以我想禁止这种烦人的行为。实际上,只需将选择颜色设置为透明或白色即可。

有没有办法做到这一点?

4

3 回答 3

5

以下css为我解决了这个问题:

-fx-highlight-fill: null;
-fx-highlight-text-fill: null;
于 2012-08-16T23:11:57.483 回答
3

您可以禁用关键事件的文本选择:

myTextField.addEventFilter(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent inputevent) {
        if (!myTextField.getSelectedText().isEmpty()) {
            myTextField.deselect();
        }
    }
});

对于鼠标事件,您还可以使用:

myTextField.addEventFilter(MouseEvent.MOUSE_DRAGGED, new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent event) {
        if (!myTextField.getSelectedText().isEmpty()) {
            myTextField.deselect();
        }
    }
});
于 2013-07-24T14:04:45.610 回答
2

超级迟到的答案,但我有一个更好的解决方案。
与其禁用选定文本的样式或管理鼠标事件,不如直接管理 selectedTextProperty()。
该解决方案的优点是:

  • 选择属性将始终为空选择
  • 双击也涵盖了,不仅是鼠标拖动事件

编码...

    textField.selectedTextProperty().addListener((observable, oldValue, newValue) -> {
        if (!newValue.isEmpty()) textField.deselect();
    });
于 2021-11-21T16:45:31.033 回答