UItextView 和返回 space 键盘上的点击事件
UItextView and back space click event on keyboard
我想检测 space 在 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;
}
ps
记得将您的 class 设置为 UITextView
的代理
这就是你想要的。此方法检测何时删除字符,并将其打印到控制台。
@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
我想检测 space 在 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;
}
ps
记得将您的 class 设置为 UITextView
的代理这就是你想要的。此方法检测何时删除字符,并将其打印到控制台。
@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