1

Deleteキーが押されたことを検出する方法を探しました。私はAppleの主要な取り扱い文書に出くわし、またこれを回避策で試している人もいます。どちらの方法をとるべきかわかりません。私がやりたいことは非常に簡単です:

-(void)deleteKeyWasPressed {

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

[previousTextField becomeFirstResponder]; 

}

}

しかし、私が知る限り、この方法は存在しません。

これを行うための最良の方法は何でしょうか?

4

2 に答える 2

7

iOSは、Deleteキー(または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

私が実装した方法は、テキストフィールドの以前の長さをどこかに保存してから、以前の長さを現在の長さと比較することです。以前の長さが現在の長さよりも大きい場合は、Deleteキーが押されました。私にとってはうまくいきます。

于 2012-11-26T03:33:47.527 に答える