2012-07-30 36 views
-2

我怎樣才能在Lua檢測用戶是否已經停止在富文本框/對象打字,從而使我比較已經爲進一步inputed用戶當前文本實現?也就是說,在用戶停止在richtext對象或框中鍵入文本之後,比較剛輸入的文本。但是,我已經設法執行進一步的實現部分,比如比較和要執行的操作,但是我的問題是如何檢測用戶是否已停止在其他實現遵循的richtext框中輸入內容。檢測腳本/文本的末尾在Lua中

我嘗試了好幾種方法,但我仍然沒有得到它的權利。

+2

停止輸入* what *?一個窗口框?一個linux的盒子?一部手機?盧阿碼頭?一些定製編輯器? – 2012-07-30 13:37:03

+0

@Mike Corcoran:請讓我談論一個richtext對象或者說richtext框。在這種情況下,用戶可能正在鍵入內容,但每當他/她停止輸入時,就會比較剛輸入的文本。謝謝! – 2012-07-30 16:17:23

回答

2

我猜你正在使用某種形式的GUI庫,以獲得豐富文本框。

你應該尋找的是一種查看鍵盤事件的方法。一些GUI工具包有它們。每次用戶按下某個按鍵(或有其他來自鍵盤的輸入)時,操作系統都會觸發該程序可以訪問的鍵盤事件。你可以用它來判斷用戶是否輸入了文字。如果事件之間有很大的停頓,可能是2秒,則可以判斷用戶已停止鍵入並繼續進行比較。

另一種方式來做到這一點是看文本框的內容。基本上,看看文本框的內容。如果他們上次看過後發生了變化,那麼您應該等一下再檢查一次。如果他們沒有改變,假設用戶已經停止輸入並且運行你的比較。

請記住,有些人真的鍵入緩慢或可能停止通過打字中途想。這意味着如果你經常檢查,你可以欺騙自己,並改變用戶剛輸入的文字,他們可以看到它可以嚇倒和混淆用戶。 (當您讀取所有數據時,某些GUI工具包會從文本框中刪除文本,這意味着用戶只能看到他們的所有工作都消失了!)請小心。

老實說,你正在試圖做什麼的一些細節將是非常有益的。正如Mike Corcoran所說,腳本運行的地方可以真正改變你有什麼選擇,以及哪些選項對整個程序最有效。例如,第三種解決方案是簡單地要求用戶按下按鈕或以其他方式指示他們已經完成打字。在文本編輯器中這不是一個好主意,但它可以在其他一些GUI中使用。