2016-03-30 12 views
-3

Ich möchte erkennen, welches Zeichen auf Backspace entfernt ist klicken Sie auf Ereignis auf der Tastatur in UITextView.UItextView und Backspace Klick Ereignis auf der Tastatur

Also wenn jemand Lösung weiß, bitte helfen. Vielen Dank im Voraus.

+0

i für Lösung bin auf der Suche, aber fand keine so, wenn Sie bitte helfen Sie haben .. –

Antwort

1

Sie das Protokoll UITextViewDelegate Methode

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

implementieren soll und erhältst nur den Text in Bereich versuchen, dies um ein Protokoll zu haben (es ist leer, falls es ist kein Ersatz, sondern ein neuer Eingang)

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


     NSLog(@"deleting this string: |%@|", [textView.text substringWithRange:range]); 


    return YES; 
} 

ps

erinnern Ihre Klasse als Delegierter des UITextView zu setzen

+0

sorry ich nicht verstehe ich möchte nur erkennen, welche Zeichen auf der Rückseite Platz in der Tastatur entfernt wird ... 'Text' Rückgabe neuer Ersatz Zeichen rechts nicht gelöscht Zeichen .. –

+0

ok, sorry ... ich habe meine Antwort geändert ... – meronix

+0

hey, das war super Mann arbeitete für mich Danke für Ihre Hilfe .. –

-1

Hier ist, was Sie wollen. Diese Methode erkennt jedes Mal, wenn ein Zeichen entfernt wird, und druckt es auf der Konsole aus.

@interface ViewController()<UITextFieldDelegate> 
{ 
    UITextField *textField; 
    NSString *currentText; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 50, self.view.frame.size.width-40, 30)]; 
    [textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventEditingChanged]; 
    textField.delegate = self; 
    textField.borderStyle = UITextBorderStyleRoundedRect; 
    [self.view addSubview:textField]; 
} 

-(void)textChanged:(UITextField *)sender{ 

    if (!currentText) { 
     currentText = sender.text; 
    } 

    if (![currentText isEqualToString:sender.text]) { 

     //The text that is in the textField at the moment is shorter than it was the last time the textfield was editted... This shows that a backspace was pressed 
     if (currentText.length > sender.text.length) { 


      NSLog(@"Character: %@", [currentText substringFromIndex:sender.text.length]); 

     } 



    } 

    currentText = sender.text; 


} 


@end 
Verwandte Themen