2012-03-07 8 views
0

我試圖捕獲當用戶在Edit Did Change事件中按下iPhone上數字鍵盤上的del鍵時。我認爲我可以通過發件人事件捕獲它,但無法找到要抓取的對象並在網絡上查看,但找不到可通過發件人事件按下按鍵的任何位置。在Edit Did Change事件中解釋從數字鍵盤中刪除密鑰

我正在製作一個電話號碼文本字段格式化程序,並希望允許用戶使用del鍵刪除「 - 」。但現在它的寫法當然會停在那裏。我只需要捕獲del鍵並讓它忽略格式。

想法?

- (IBAction)homePhoneEditChanged:(id)sender 
    { 
     if(homePhone.text.length == 13) 
     { 
      homePhone.text = [homePhone.text substringToIndex:12]; 
      return; 
     } 

     static BOOL toggle = NO; 
     if (toggle) 
     { 
      toggle = NO; 
      return; 
     } 
     // Add a condition here to ignore if the del key was pressed 
     if(homePhone.text.length == 3 || homePhone.text.length == 7) 
     { 
      // Add a - 
      toggle = YES; 
      homePhone.text = [NSString stringWithFormat:@"%@-",homePhone.text]; 
     }  
    } 

回答

0

如果您打算關注本地化,電話號碼格式化是一個相當複雜的想法。將字段限制在僅數字字段,然後遵循如this之類的內容會更好嗎?

+0

謝謝您的信息,但是,我有一個具體的需求,並不真的需要考慮本地應用程序。我真的只需要瞭解如何在此方法中按下時捕獲del鍵。我會保留這個鏈接以供將來考慮,但真正感謝你的幫助! – Edd 2012-03-07 16:39:04

+0

NP。遵循Apple準則,這不是一個容易解決的問題。有人在這裏http://nacho4d-nacho4d.blogspot.com/2012/01/catching-keyboard-events-in-ios.html發現了一個黑客。祝你好運。不過,我不知道這是否適用於外接鍵盤。 – teamaxe 2012-03-07 16:45:55