1

我四处寻找方法来检测何时按下删除键。我遇到了 Apple 的关键处理文档,还有一些人尝试解决这个问题。我不确定要采用哪种方法。我想做的很简单:

-(void)deleteKeyWasPressed {

if (myTextField.text.length == 0) {

[previousTextField becomeFirstResponder]; 

}

}

但据我所知,这种方法不存在。

这样做的最佳方法是什么?

4

2 回答 2

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;
}
于 2012-11-26T03:33:29.877 回答
1

我实现它的方式是将文本字段的先前长度保存在某处,然后将先前的长度与当前长度进行比较。如果先前的长度大于当前长度,则按下删除键。对我来说效果很好。

于 2012-11-26T03:33:47.527 回答