检测 Lua 脚本/文本的结尾

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

我已经尝试了几种方法,但仍无法正确实现。

点赞
用户631634
用户631634

我猜你正在使用某种GUI库来获得文本框。

你需要寻找一种查看键盘事件的方法。有些GUI工具包中就有它们。每当用户按下一个键(或键盘有其他输入时),操作系统将触发一个键盘事件,程序可以访问它。你可以使用它来判断用户是否输入了文本。如果事件之间有很长的停顿,比如2秒,那么你可以判断用户停止打字并进行比较。

另一种方法是查看文本框的内容。基本上,查看文本框的内容。如果与上次查看的内容不同,那么等待一段时间后再次检查。如果它们没有改变,假定用户已经停止打字并运行比较。

要注意的是,有些人打字非常慢,或者在打字一半停下来思考。这意味着如果你检查得太频繁,你可能会欺骗自己,并在用户可以看到的地方更改用户刚刚键入的文本,这可能会吓到和困惑用户。(一些GUI工具包在读取所有数据时会将文本框中的文本删除,这意味着用户刚刚看到了他们的所有工作消失!)只需要小心就好了。

说实话,了解你尝试做什么的一些细节将非常有帮助。正如Mike Corcoran所示,这个脚本运行的位置可以真正改变你拥有的选项以及在整个程序中哪些选项最好。例如,第三种解决方案是简单地要求用户按下一个按钮或以其他方式表明他们已经完成了打字。这在文本编辑器中不是一个好主意,但在其他一些GUI中会很有效。

2012-07-30 20:16:32