我正在开发一个iOS项目,我正在尝试检测何时长按退格键。
我正在使用填充了大量文本的UITextView,然后按下退格键。首先,通过char删除文本,然后删除整个文本。
我正在使用此方法来检测所有更改:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
我观察到虽然文本被char删除,但是这个方法被调用,但是当整个文本被删除时,没有任何事情发生。
对此有何想法?
非常感谢。
答案 0 :(得分:3)
这将检测退格
-(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;
}
答案 1 :(得分:1)
您可以创建自定义后退键(或在标准后面叠加视图),然后使用UITouch。因此,检查touchesBegan并启动一个计时器,每隔x秒从字符串中删除一个字符。触摸时终止计时器。