0

こんにちは、UITextField を作成しました。これを 3 文字に制限したいと考えています。空の場合、ボタンを有効にしない場合はボタンを無効にします。誰もこれを行う方法を知っていますか?

試してみましたが、3文字を入力すると正しく機能しません.3と表示されますが、キーボードを閉じません.これを行うためのより良い方法があると感じずにはいられません.

これが私がやったことです

- (void)hideKeyboardAction {

    NSLog(@"Hide");

    if([self.playerName length] >= 4){
        [self.nameTextField resignFirstResponder];
    } else if([self.playerName length] < 3) {
        [self.addToScores setEnabled:FALSE];
    }
}

- (IBAction)hideKeyboard:(id)sender {

  [self hideKeyboardAction];
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    self.playerName = [textField.text stringByReplacingCharactersInRange:range withString:string];

    if([self.playerName length] <4 ){
        [self hideKeyboardAction];
    }

    if([self.playerName length] > 3){
        [self.addToScores setEnabled:FALSE];
    }

    BOOL shouldStayOpen = !([self.playerName length] > 3); 
    return shouldStayOpen;
}
4

1 に答える 1

0

textField:shouldChangeCharactersInRange:replacementString: 内のテキストを置き換えないでください。textField のテキストの長さを確認し、範囲の長さと replacementString の長さを比較して、置き換えるかどうかを決定 (YES/NO を返す) する必要があります。置換後のテキストの計算された長さに基づいて、このメソッドでボタンを有効/無効にすることもできます。

私の意見では、キーボードを隠す必要はありません。

于 2012-05-23T08:37:39.760 に答える