首页 > 解决方案 > Tornadofx onFocus 监听器

问题描述

有没有类似onFocus()方法的东西,我可以像视图类中的onDock()and那样覆盖它?onCreate()

在文档中,只写了关于实时重新加载视图的内容。

我尝试将它与onDock()andonCreate()方法结合起来,但是,即使它“有效”,它也不是一种非常巧妙的复制onFocus行为的方式。

是否有一种简单的方法可以在视图/片段进入前面/焦点时调用“侦听器”方法?

标签: javafxviewkotlinlistenertornadofx

解决方案


View 是一个容器,而不是 JavaFX 上下文意义上的 UI 元素,因此它无法接收onFocus回调。但是,您可以在当前窗口甚至视图的根节点上注册一个。currentWindow如果您要打开一扇窗户,您可以在该物业上注册这样的一个。如果你没有打开一个窗口,你可以用rootView 的属性注册它。这是一个监听来自的单个焦点更改事件的示例currentWindow

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

    }
}

推荐阅读