Tornadofx onFocus 监听器

Tornadofx onFocus listener

是否有类似 onFocus() 方法的东西,我可以像视图 class 中的 onDock()onCreate() 一样覆盖它?

文档中只写了 live reloading 个视图。

我尝试将其与 onDock()onCreate() 方法相结合,但是,即使它 "works",它也不是复制 onFocus 行为的一种非常巧妙的方式.

有没有一种简单的方法可以让 "listener" 方法在 view/fragment 达到 front/on 焦点时调用?

View 是一个容器,而不是 JavaFX 上下文意义上的 UI 元素,因此它无法接收 onFocus 回调。但是,你可以用当前window甚至是View的根节点注册一个。如果你打开一个 window,你可以用 currentWindow 属性 注册这样一个偶数。如果您不打开 window,您可以将其注册到视图的 root 属性。这是一个从 currentWindow:

监听单个焦点更改事件的示例
override fun onDock() {
    currentStage?.focusedProperty()?.onChangeOnce {

    }
}