2011-07-06 17 views
8

目前我使用的是UIKeyinput,但它只是發送一個單獨的delteBackward事件,即使我長時間按住刪除鍵。 當我長時間保持刪除狀態時,如何讓它向我發送多個事件通話?我如何使UIKeyInput重複deleteBackwards調用

+0

你這個問題取得任何進展? –

回答

3

有沒有簡單的方法讓系統鍵盤自動重複。這些讓你有兩個選擇:

  1. 假它通過使用鍵盤上的覆蓋(見@ pho0評論)
  2. 實現自定義鍵盤,它安裝的inputView您的視圖或視圖控制器實現支持自動重複的自定義協議。

如果您只需要刪除鍵自動重複,則解決方案1可以很好地工作,但如果您需要所有鍵自動重複,則重疊代碼將變得與自定義鍵盤選項一樣複雜。 (覆蓋層需要爲每個鍵使用一個矩形,所以爲什麼不直接更換底層鍵盤)。

解決方案2涉及一定量的「預先」工作......您可能會這樣做的一種方式是定義鍵帽類(如物理鍵)和鍵盤佈局類。

我已經在我所從事的項目中實施了這兩種解決方案,但我目前使用解決方案2,因爲我可以創建任何我喜歡的鍵盤。在簡單的情況下,使用不需要知道它不是系統鍵盤。對於高級用戶,他們可以根據自己的需要定製鍵盤。

爲了什麼是值得的,我發現它有用的鍵盤類是愚蠢的;它只是表明一個密鑰已經轉換爲關閉狀態或已經轉換爲啓動狀態。另外一個班級決定應採取什麼行動。

在某些方面,我知道這是不是你要找的答案,但我希望它能幫助, IDZ

+0

你介意發佈你的解決方案2代碼?謝謝 –

+0

@ tommy7xp對不起,這不是代碼我可以自由發佈。 – idz

3

我見過的一件事就是在鍵盤按鈕上放一個假按鈕。當有人按住它時,定時器會在每次觸發時刪除最後一個字母。

希望這會有所幫助。