问个 javaFX textfield 事件的问题

2017-11-03 18:42:31 +08:00
 madNeal

javaFx 里面遇到一个特别坑爹的问题,onInputMethodTextChanged 只能在全角状态下才能触发,但是一旦切换到半角状态就没办法触发了,另外 onKeyTyped 事件只能在半角状态下触发,切换到全角状态就不能触发了。 javaFX 的资料太少了,官方的资料说的也不是很清楚

                              <TextField fx:id="searchText" layoutX="159.0" layoutY="47.0" onInputMethodTextChanged="#getSearchTextChanged" onKeyTyped="#getKeyTyped" prefHeight="30.0" prefWidth="271.0" />
3523 次点击
所在节点    程序员
6 条回复
yidinghe
2017-11-04 00:55:45 +08:00
因为半角本来就不在输入法状态下啊。半角输入不会被输入法拦截而是直接发送给控件,全角输入会处于一个被输入法拦截的状态,所以会触发 onInputMethodTextChanged。onKeyTyped 其实不应该用在文本框上,它是用来探测快捷键的。总之不知道楼主想实现什么,这两个事件基本上平常都用不到。
madNeal
2017-11-04 08:09:14 +08:00
@yidinghe 这些事件应该很常用,我想去做一个搜索,做到一个实时搜索,而且最坑的是 onInputMethodTextChanged 虽然在全角状态下可以触发,但是却不能显示出来,这貌似也是 javaFX 的一个 BUG。
HuHui
2017-11-04 10:17:31 +08:00
文档确实太少了
madNeal
2017-11-04 11:24:56 +08:00
都什么年代了,还有这么坑爹的 bug
yidinghe
2017-11-05 00:01:27 +08:00
@madNeal 你用错事件了,应该侦听文本内容变更 textfield.textproperty().addListener(...)
yidinghe
2017-11-05 00:21:00 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/403342

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX