0

に最大長を設定したいのですUITexFieldが、これは に挿入されていUIAlertViewます。この美しいサイトで、この問題を解決するための適切な情報を見つけようとしていますが、何もありません。

誰かがこれを手伝ってくれますか?

4

2 に答える 2

2

これは UITextFieldDelegate メソッドのより良い実装だと思います。ユーザーの目の前でテキストの終わりを削除せず、ユーザーがそれ以上テキストを入力できないようにするだけです。

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

    if (newString.length > MAXLENGTH)
    {
        return NO;
    }

    return YES;
}

プロトコルの実装を忘れずにUITextFieldDelegate、コントローラーをテキスト フィールドのデリゲートとして設定してください (Anoop Vaidya の回答を参照)。

于 2013-04-12T08:18:28.947 に答える
0

次の方法で alertView の textField にアクセスできます。

UITextField *theTitleTextField = [alertView valueForKey:@"_bodyTextLabel"];

追加されたテキストフィールドを見つけたい場合は、 Martin RtextFieldAtIndex:の提案に従って使用してください。

次に、UITextFieldDelegateプロトコルを実装します。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([textField.text length] > MAXLENGTH) {
        textField.text = [textField.text substringToIndex:MAXLENGTH-1];
        return NO;
    }
    return YES;
}
于 2013-03-23T16:57:29.610 に答える