我已经四处寻找检测何时按下删除键的方法。我遇到了Apple的密钥处理文档,还有一些人在尝试解决这个问题。我不确定采用哪种方法。我想做的很简单:
-(void)deleteKeyWasPressed {
if (myTextField.text.length == 0) {
[previousTextField becomeFirstResponder];
}
}
但据我所知,这种方法不存在。
这样做的最佳方法是什么?
答案 0 :(得分:7)
iOS没有直接支持检测删除键(或Return以外的任何键)。您可以做的最好的是实现textField:shouldChangeCharactersInRange:replacementString:
委托方法。当用户点击Delete键时,替换字符串将是空字符串。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (string.length == 0) {
// handle Delete (but this also handles the Cut menu as well)
} else {
// some other key or text is being pasted.
}
return YES;
}
答案 1 :(得分:1)
我实现它的方法是在某处保存文本字段的先前长度,然后将之前的长度与当前长度进行比较。如果前一个长度大于当前长度,则按下删除键。适合我。