UIView に複数の UITextField を追加する際に問題が発生しました。それらは正しく追加されていますが、ユーザーが最初のフィールドしか編集できない (キーボードが表示されるようにタッチする) ことがあり、デリゲートを自分自身に設定し、メソッド textFieldDidBeginEditing を実装しました。 . 悲しいことに、最初に反応したものだけがこのメソッドをトリガーし、他のものは「手に負えない」ようです。
これを経験したことがありますか?
for (int i = 0;i<N;i++){
CGRect textFieldNewFrame = CGRectMake(200,60 + 34*i,72,30);
fields[i] = [[UITextField alloc] initWithFrame:textFieldNewFrame];
[fields[i] setTag:i];
[fields[i] setText:@"0"];
[fields[i] setFont:appFont];
[fields[i] setTextColor:appColor];
[fields[i] setBackground:[UIImage imageNamed:@"text_field_off.png"]];
[fields[i] setTextAlignment:UITextAlignmentCenter];
[fields[i] setKeyboardType:UIKeyboardTypeDecimalPad];
[fields[i] setDelegate:self];
[fields[i] setUserInteractionEnabled:TRUE];
[listView addSubview:fields[i]];
verticalOffset += 34;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField;{
NSLog(@"TextField touched");
}
ありがとう