在 CellTable 中从输入切换到输入
Posted
技术标签:
【中文标题】在 CellTable 中从输入切换到输入【英文标题】:Tab from input to input in CellTable 【发布时间】:2011-05-03 20:45:33 【问题描述】:我有一个 CellTable,其中包含一堆呈现到 <input>
标记的单元格。由于 CellTable 的花哨事件处理,输入之间的选项卡被破坏。似乎选项卡将每个单元格激发到finishEditing
,但这反过来又占据了焦点,焦点永远不会到达下一个<input>
。
在每个输入上设置 tabIndex 似乎不会影响行为。
如何恢复通常的选项卡功能?
【问题讨论】:
【参考方案1】:我最近发现了这一点。烦人,但一旦找到魔法就很简单。
-
创建一个新的单元格类型以在您的表格中使用,因为股票 TextInputCell 指定的选项卡索引为 -1。基本上做 TextInputCell 所做的一切,但不要在模板中指定任何选项卡索引。
禁用 CellTable 上的默认键盘导航。
cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED)
这应该会导致 CellTable 中的标签导航正常。
【讨论】:
非常感谢您的回答。它对我来说非常有效。不得不修改标准组件从来都不是使用框架的好方法。谷歌,请改进这方面的开箱即用体验!【参考方案2】:如果您使用任何 MVP 框架,禁用 KeyboardSelectionPolicy 可能不适用于所有视图。 GWT 选择单元格而不是单元格内的输入字段。
这是我在应用程序中使用的解决方案:Adding TAB control to GWT CellTable
【讨论】:
【参考方案3】:如果您不更改单元格的值,Ben Imp 的解决方案可以正常工作,但如果您更改值并尝试使用选项卡导航到下一个单元格,它会失去焦点并从视图的第一个元素开始。我还没有找到解决这种不当行为的方法。
【讨论】:
我实现了这个component,当用户关注它时,它开始编辑并且用户可以按tab键导航离开,可能会对你有所帮助。【参考方案4】:对于那些在未来试图弄清楚如何在更改值时使用制表符的人,请按照 Ben Imp 的建议执行操作,然后在您的自定义组件中删除对 super.finishEditing 的任何引用。在某些情况下,这意味着覆盖 finishEditing 并让它什么都不做。
【讨论】:
以上是关于在 CellTable 中从输入切换到输入的主要内容,如果未能解决你的问题,请参考以下文章
使用 pedantic flag 编译时,如何在 C++ 中从 (void *) 重新输入到 int 而不会收到任何警告?