3

内で作成されたテキストフィールドの最大文字列長を設定するにはどうすればよいUIAlertViewですか? 私は Xcode 4.5 を使用しており、10.8 (OS X) でアプリをビルドしています。現在UIAlertView、ユーザーがボタンをクリックすると起動します。ユーザーは RFID バッジをスキャンしUIAlertViewます。ユーザーが関連付けプロセスをごまかすことができないように、入力テキストフィールドを 10 文字に制限する必要があります。

4

2 に答える 2

3

textField のデリゲート メソッドでテキストの長さを確認できます。

textField:shouldChangeCharactersInRange:replacementString:

変更したくない場合は NO を返します。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
   if (textField.text.length - range.length + string.length > 10) {
      return NO;
   }
   return YES;
}
于 2012-11-23T14:48:14.087 に答える
2

上記の答えはほぼ正しいようです。

単一の文字を入力すると、(このメソッドの) range.length は常にゼロのように見えますが、位置は増加します。

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

      NSLog(@"Range: %@", NSStringFromRange(range));
      return ( range.location < 10 );

 }

編集: 1 文字の入力以外のこと、つまり行の貼り付けなどを行うと、おそらく長さが長くなります。

于 2012-12-08T23:16:13.430 に答える