1

Tagプロパティを使用してUITextFieldが存在するかどうかを検出する方法はありますか?基本的に、動的に作成された多数のテキストフィールドがあり、キーパッドのリターンキーを使用してフィールドをタブで移動したいと思います。

別の投稿から以下のコードを使用しようとしていますが、「textField.superview」はnullを返します。プログラムでテキストフィールドを作成しています。

-(BOOL)textFieldShouldReturn:(UITextField*)textField;
{
  NSInteger nextTag = textField.tag + 1;
  // Try to find next responder
  UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
  if (nextResponder) {
    // Found next responder, so set it.
    [nextResponder becomeFirstResponder];
  } else {
    // Not found, so remove keyboard.
     [textField resignFirstResponder];
  }
  return NO; // We do not want UITextField to insert line-breaks.
}
4

3 に答える 3

2

このように直接確認できます

       -(BOOL)textFieldShouldReturn:(UITextField*)textField {
             if (textField.tag == 1) {
             //Do the stuff what you want here
             }
        }

タグを設定するため

        textFieldName.tag = 1;
于 2011-11-18T08:59:06.100 に答える
1

isKindofClass:メソッドを使用できます。次のように実行できます

 if ([[textField.superview viewWithTag:nextTag] isKindOfClass:[UITextField class]])
  {
    // Found next responder, so set it.
    [(UITextField *)[textField.superview viewWithTag:nextTag] becomeFirstResponder];
  } else {
    // Not found, so remove keyboard.
     [textField resignFirstResponder];
  }
  return NO; // We do not want UITextField to insert line-breaks.
}
于 2011-11-18T08:59:52.370 に答える
0

テキストフィールドのタグを設定しましたか?タグフィールドは自動的に設定されません。後で識別できるように、テキストフィールドを作成するときに自分で設定する必要があります。設定しない場合、デフォルトですべて0になります。したがって、テキストが0より大きいフィールドは見つかりません。

于 2011-11-18T08:58:01.003 に答える