javaFx 里面遇到一个特别坑爹的问题,onInputMethodTextChanged 只能在全角状态下才能触发,但是一旦切换到半角状态就没办法触发了,另外 onKeyTyped 事件只能在半角状态下触发,切换到全角状态就不能触发了。 javaFX 的资料太少了,官方的资料说的也不是很清楚
<TextField fx:id="searchText" layoutX="159.0" layoutY="47.0" onInputMethodTextChanged="#getSearchTextChanged" onKeyTyped="#getKeyTyped" prefHeight="30.0" prefWidth="271.0" />
1
yidinghe 2017-11-04 00:55:45 +08:00
因为半角本来就不在输入法状态下啊。半角输入不会被输入法拦截而是直接发送给控件,全角输入会处于一个被输入法拦截的状态,所以会触发 onInputMethodTextChanged。onKeyTyped 其实不应该用在文本框上,它是用来探测快捷键的。总之不知道楼主想实现什么,这两个事件基本上平常都用不到。
|
2
madNeal OP @yidinghe 这些事件应该很常用,我想去做一个搜索,做到一个实时搜索,而且最坑的是 onInputMethodTextChanged 虽然在全角状态下可以触发,但是却不能显示出来,这貌似也是 javaFX 的一个 BUG。
|
3
HuHui 2017-11-04 10:17:31 +08:00
文档确实太少了
|
4
madNeal OP 都什么年代了,还有这么坑爹的 bug
|
5
yidinghe 2017-11-05 00:01:27 +08:00 via Android
@madNeal 你用错事件了,应该侦听文本内容变更 textfield.textproperty().addListener(...)
|
6
yidinghe 2017-11-05 00:21:00 +08:00
|