Tornadofx onFocus слушатель

Есть ли что-то вроде onFocus() метод, который я мог бы переопределить как onDock() а также onCreate() в классе просмотра?

В документации написано только о перезагрузке представлений.

Я попытался объединить это с onDock() а также onCreate() метод, но, хотя он "работает", это не очень аккуратный способ репликации onFocus поведение.

Есть ли простой способ иметь метод "слушателя", который вызывается, когда представление / фрагмент попадают в фокус впереди?

1 ответ

Решение

Представление является контейнером, а не элементом пользовательского интерфейса в смысле контекста JavaFX, поэтому оно не может получить onFocus Перезвоните. Однако вы можете зарегистрировать его в текущем окне или даже в корневом узле представления. Если вы открываете окно, вы можете зарегистрировать такое даже с currentWindow имущество. Если вы не открываете окно, вы можете зарегистрировать его в root Свойство Вью. Вот пример прослушивания одного события изменения фокуса из currentWindow:

override fun onDock() {
    currentStage?.focusedProperty()?.onChangeOnce {

    }
}
Другие вопросы по тегам