感谢您提供的代码。正如您所说,有一些已弃用的方法,但我可以尝试并理解实现背后的逻辑。但我也在考虑另一种方法。这种方法是使用Absolute Panel、SuggestBox和PushButton。点击PushButton应该显示PopUpPanel,而SuggestBox则使用它。但我无法弄清楚如何访问用于SuggestBox的popUpPanel(API中没有提供getter/setter)。 - Barry
是的。获取建议菜单的访问权限是我提到的“少量更改”的一部分。我试图提交我的API更改,但时机不对,我无法得到提交者足够长的注意力。我没有再尝试的倾向。你可以尝试的另一种方法是在另一个包中简单地复制SuggestBox并根据需要进行修改。这样,您不依赖于核心库的更改,但您也不会获得将来版本中对SuggestBox进行的任何改进。 - Isaac Truett
我尝试了你建议的另一种方法。我将SuggestBox API复制到我的类中,但是该API使用了其他类中的许多私有/受保护方法,因此当我将其复制粘贴到我的包中时出现了问题。所以我认为即使这个选项也被排除了。 - Barry
你有没有查看依赖关系的深度?如果只是几个类,你也可以将它们复制过来。你还可以尝试将你的SuggestBox版本保留在原始包中,以获得对包保护方法的访问权限。 - Isaac Truett