2016-03-30 1 views
-3

Я хочу, чтобы определить, какой символ удаляется при щелчке мышью на клавиатуре в UITextView.Событие UItextView и обратного пространства на клавиатуре

Так что если кто-нибудь знает решение, пожалуйста, помогите. Спасибо заранее.

+0

я ищу решение, но ничего не нашел, так что если у вас есть какие-либо пожалуйста, помогите .. –

ответ

1

вы должны реализовать метод протокола UITextViewDelegate

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

и просто получить текст в диапазоне попробовать это, чтобы иметь журнал (он пуст, если это не замена, но новый вход)

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


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


    return YES; 
} 

пс

забудьте установить свой класс в качестве делегата от вашего UITextView

+0

жаль, что я не понимаю, я просто хочу, чтобы определить, какой символ удаляется на заднем пространстве в клавиатуре ... «Текст» возвращает новую замену char право не удалял символ .. –

+0

ОК, извините ... я изменил свой ответ ... – meronix

+0

эй, что было потрясающим человеком, работал на меня спасибо за вашу помощь .. –

-1

Вот что вы хотите. Этот метод обнаруживает, когда символ удаляется, и печатает его на консоли.

@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