ページ 11

テキストフィールドの入力制限

Posted: 2014年8月12日(火) 12:47
by m8170
お世話になります。
xcode objectivecにてアプリ製作中の初心者です。
どなたかお詳しい方、教えて下さいませ。

現在、web上のサンプルを参考に、UITextfieldの入力文字制限をおこないたいと思っております。
具体的には、110は入力可能だけど111や112などの切りの悪い数字を無効にしたいと考えています。
入力桁は2桁か3桁なので、2桁の場合90は可能だけど、91や92は無効にしたいと思っております。
どのようにしたらいいでしょうか。
初心者の為、もっといい方法がございましたら他の方法なども教えて頂けますと幸いです。
ご助言宜しくお願いいたします。

コード:

// テキストフィールドの入力値変更イベント
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *strNgWord = @"!\"\\#$%&'()@[]{}|^~=;:\_?<>,/-*.";	// チェック対象の文字を複数定義
    
  // 文字数チェック
  if (8 < range.location + range.length + [string length]) {
  // 文字数制限を超える場合は入力取り消し
  return NO;
  }
    // 無効な文字列が含まれていないかどうかチェック
   for (int i=0; i<[strNgWord length]; i++) {
       // チェック対象の文字を設定
       NSString *strCk = [strNgWord substringWithRange:NSMakeRange(i, 1)];
       // 入力値がNGワードと一致する場合
       if ([string isEqual:strCk]) {
           // 入力取り消し
           return NO;
        }
   }
    //入力許可
    return YES;
}

Re: テキストフィールドの入力制限

Posted: 2014年8月12日(火) 12:57
by h2so5
11が入力できないのに110はどうやって入力するのでしょうか。

Re: テキストフィールドの入力制限

Posted: 2014年8月12日(火) 13:00
by m8170
h2so5 様

早速のご返信ありがとうございます。
やはりそうですよね・・なにか方法があるのではと思ったのですが。。
他の方法を考えるしかないですよね。ありがとうございます。

Re: テキストフィールドの入力制限

Posted: 2014年8月12日(火) 13:04
by h2so5
UIPickerViewを使って選択式にしたほうがいいと思います。

Re: テキストフィールドの入力制限

Posted: 2014年8月12日(火) 13:07
by m8170
h2so5様
ありがとうございます。
初歩的な内容で本当にすみません・・実はなにか方法があるのでは、と思いました。
大変勉強になります。
UIPickerviewにしたいと思います!