Objective c 如何检测长按退格键的时间?
我正在做一个iOS项目,我试图检测何时长按backspace键 我正在使用一个充满大量文本的UITextView,然后我一直按下backspace键。首先逐字符删除文本,然后删除整个文本 我正在使用此方法检测所有更改:Objective c 如何检测长按退格键的时间?,objective-c,ios,Objective C,Ios,我正在做一个iOS项目,我试图检测何时长按backspace键 我正在使用一个充满大量文本的UITextView,然后我一直按下backspace键。首先逐字符删除文本,然后删除整个文本 我正在使用此方法检测所有更改: - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 我观察到,当文本被逐字符删除时,会调用此方法,但当整个
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
我观察到,当文本被逐字符删除时,会调用此方法,但当整个文本被删除时,不会发生任何事情
有什么想法吗
非常感谢。您可以创建一个自定义后退键(或在标准后退键的顶部覆盖一个视图),然后使用UITouch。因此,请检查TouchesStart的时间,并启动计时器,该计时器每x秒从字符串中删除一个字符。触摸并关闭计时器。您可以创建一个自定义后退键(或在标准后退键上覆盖一个视图),然后使用UITouch。因此,请检查TouchesStart的时间,并启动计时器,该计时器每x秒从字符串中删除一个字符。触摸并关闭计时器。这将检测退格
-(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;
}
这将检测退格
-(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;
}