2

我们的控件
我有一个 Combobox/DropDownList 的自定义 SWT 实现。
这被实现为包含文本和按钮的组合。
显示列表时,我们使用一个列表控件,该控件放置在所有内容之上并位于文本和按钮处。

这按预期工作。

问题
但是我们遇到了 focusLost 和 focusGained 的问题。
最终,我希望任何外部组件在自定义的任何部分获得焦点时都获得 focusGained,并且仅在任何部分失去焦点并且没有其他部分获得焦点时才抛出 focusLost。

当焦点仅从文本移动到自定义控件内的按钮时,我想避免处理 focusLost 和 focusGained。

有谁知道 API 可以focusLost 期间知道焦点将落在哪里?
有谁知道如何以任何方式实现这一点?

4

1 回答 1

2

简而言之,无法确定哪个控件从内部获得了关注focusLost()

我建议将FocusListeners 添加到合成中的每个控件(您可以通过迭代自动执行此操作getChildren())并使用公共字段跟踪焦点对象。

换句话说,遗憾的是没有 API 函数可以为您执行此操作。

于 2010-06-07T15:43:58.837 回答