2011-07-20 95 views
0

我正在開發一個iOS項目,並試圖檢測退格鍵何時被按下。如何檢測Backspace鍵長按何時?

我正在使用充滿大量文本的UITextView,然後按住退格鍵。首先,文本被字符刪除,然後整個文本被刪除。

我使用這個方法來檢測所有更改:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

我認爲,雖然文本由字符刪除字符,這種方法被調用,但是當整個文本被刪除沒有任何反應。

對此有何看法?

非常感謝。

回答

1

您可以創建自定義後退鍵(或覆蓋標準頂部的視圖),然後使用UITouch。因此,檢查touchesBegan的時間並啓動一個計時器,該計時器每x秒從字符串中刪除一個字符。當touchEnd殺死定時器。

3

這將檢測退格

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (textField==txtMobileNo) 
    { 

     const char * _char = [string cStringUsingEncoding:NSUTF8StringEncoding]; 
     int isBackSpace = strcmp(_char, "\b"); 

     if (isBackSpace == -8) { 
      NSLog(@"isBackSpace"); 

      return YES; // is backspace 
     } 
     else if (textField.text.length == 10) { 
      return YES; 
     } 
    } 
    return NO; 
}