我到处寻找用于检测何时按下删除键的方法。我遇到了Apple的密钥处理文档,还有一些人通过变通办法进行尝试。我不确定要采用哪种方法。我想做的很简单:

-(void)deleteKeyWasPressed {

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

[previousTextField becomeFirstResponder];

}

}

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

最好的方法是什么?

最佳答案

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;
}

10-08 17:38