0

2 つの制限を同時に設定したい 4 つのテキスト フィールドがあります。1 つは、ユーザーが最大 2 文字までの文字制限で大文字のみを入力できるようにすることです。このための私のコードは次のとおりです:-

  - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range 
   replacementString:(NSString *)string {

// Below logic is for All 4 Modifer Textfields
// we are restrict the user to enter only max 2 characters in modifier textfields.
if (textField==txt_modifier1 || textField==txt_modifier2 || textField==txt_modifier3 || 
textField==txt_modifier4) {
    textField.text = [textField.text stringByReplacingCharactersInRange:range
                                                             withString:[string 
    uppercaseStringWithLocale:[NSLocale currentLocale]]];
    NSUInteger newLength = [textField.text length] + [string length] - range.length;
    return (newLength > 2) ? NO : YES;

}
return YES;

}

これは、任意の文字を入力するともう 1 文字追加され、文字数が 2 に制限されないため、適切に機能していません。この問題に取り組む方法を提案してください。

4

4 に答える 4

0

これを使ってみてください...それはあなたを助けるかもしれません

  -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
        if([string isEqualToString:[string capitalizedString]])
        {

            NSString *result = [textField.text stringByReplacingCharactersInRange:range
                                                                       withString:string.uppercaseString];
            if (result.length <= 2)
                textField.text = result;
            return NO;
        }
        else
            return YES;
}
于 2013-05-06T10:51:39.670 に答える
0

UITextField で文字数を制限して大文字にする場合は、このコード ブロックを使用します

     -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 

            textField.text = [textField.text capitalizedString];
            if(textField.text.length >= 3 && range.length == 0) 
            {
                 return NO; 
            }
            else 
            {
                 return YES;
            }
于 2013-05-06T10:38:20.827 に答える