-2

如果用户停止在富文本框/对象中输入,我如何在 lua 中检测,以便让我比较用户输入的当前文本以进行进一步的实现?也就是说,在用户停止在富文本对象或框中键入文本后,将比较刚刚键入的文本。但是,我已经设法执行进一步的实现部分,例如比较和要执行的操作,但我的问题是如何检测用户是否停止在富文本框中输入以供其他实现遵循。

我已经尝试了几种方法,但我仍然没有得到正确的结果。

4

1 回答 1

2

我猜您正在使用某种 GUI 库来获取富文本框。

您应该寻找的是一种查看键盘事件的方法。一些 GUI 工具包有它们。每次用户按下一个键(或键盘有其他输入)时,操作系统都会触发程序可以访问的键盘事件。您可以使用它来判断用户是否输入了文本。如果事件之间有很大的停顿,可能是 2 秒,您可以判断用户已经停止输入并继续进行比较。

另一种方法是查看文本框的内容。基本上,看看文本框的内容。如果自您上次查看后它们发生了变化,那么您应该稍等片刻,然后再次检查。如果它们没有改变,假设用户已经停止输入并运行您的比较。

请记住,有些人打字速度很慢,或者可能会在打字到一半时停下来思考。这意味着如果您检查得太频繁,您可能会自欺欺人,并且更改用户刚刚键入的文本可能会吓到和混淆用户。(当您阅读所有数据时,一些 GUI 工具包会从文本框中删除文本,这意味着用户只是看到他们所有的工作都消失了!)请小心。

老实说,有关您正在尝试做的事情的一些细节会非常有帮助。正如 Mike Corcoran 所指出的,该脚本的运行位置可以真正改变您拥有的选项以及哪些选项最适合整个程序。例如,第三种解决方案是简单地要求用户按下按钮或以其他方式指示他们已完成输入。这在文本编辑器中不是一个好主意,但它可以在其他一些 GUI 中工作。

于 2012-07-30T20:16:32.263 回答