重複の可能性:
UITextField でバックスペースを検出する
空の UITextfield でバックスペース キー イベントを検出しようとしています。私はこれを見ましたが、それを理解できませんでした。精巧な回答やコードスニペットがあれば役に立ちます
重複の可能性:
UITextField でバックスペースを検出する
空の UITextfield でバックスペース キー イベントを検出しようとしています。私はこれを見ましたが、それを理解できませんでした。精巧な回答やコードスニペットがあれば役に立ちます
私はそれが不可能であることを発見しました。
UITextField が空の場合、次のデリゲート メソッドは呼び出されません。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
フィールドに常にスペースを入れることでこれを克服しました。バックスペースを検出し、フィールドにスペースしか含まれていない場合は、デリゲート メソッドで NO を返します。
if ([string isEqualToString:@""] && [textField.text isEqualToString:@" "]){
// Backspace called on 'empty' field.
return NO;
}
視覚的には、これはフィールドが空であることと同じであり、空のフィールドでデリゲート メソッドが呼び出されないようにするための回避策です。
それが役立つことを願っています。
:)私が使用するタイトル「バックスペースの検出」のためだけにUIKeyboardTypeNumberPad
。
今夜も同じ質問に遭遇します。以下は、それを見つけるための私のコードです。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog([NSString stringWithFormat:@"%d", [string length]]);
}
ではUIKeyboardTypeNumberPad
、ユーザーは数値またはバックスペースしか入力できないため、文字列の長さが 0 の場合はバックスペース キーでなければなりません。
上記が何らかの助けになることを願っています。