Я хочу, чтобы определить, какой символ удаляется при щелчке мышью на клавиатуре в UITextView
.Событие UItextView и обратного пространства на клавиатуре
Так что если кто-нибудь знает решение, пожалуйста, помогите. Спасибо заранее.
Я хочу, чтобы определить, какой символ удаляется при щелчке мышью на клавиатуре в UITextView
.Событие UItextView и обратного пространства на клавиатуре
Так что если кто-нибудь знает решение, пожалуйста, помогите. Спасибо заранее.
вы должны реализовать метод протокола 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
жаль, что я не понимаю, я просто хочу, чтобы определить, какой символ удаляется на заднем пространстве в клавиатуре ... «Текст» возвращает новую замену char право не удалял символ .. –
ОК, извините ... я изменил свой ответ ... – meronix
эй, что было потрясающим человеком, работал на меня спасибо за вашу помощь .. –
Вот что вы хотите. Этот метод обнаруживает, когда символ удаляется, и печатает его на консоли.
@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
я ищу решение, но ничего не нашел, так что если у вас есть какие-либо пожалуйста, помогите .. –