【发布时间】:2011-12-02 14:26:04
【问题描述】:
我在 UIView 中添加多个 UITextField 时遇到问题,它们已正确添加,但碰巧用户只能编辑其中的第一个(触摸它以显示键盘),我已将委托设置为 self,并实现方法 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");
}
谢谢
【问题讨论】:
-
检查
listView的框架,如果它的高度 -
当您说“添加正确”时,它们是否出现在屏幕上的正确位置?尝试
setText:[NSString stringWithFormat:@"%d", i]以更好地了解正在发生的事情。另外,你如何声明fields? -
好的铍是对的,我没有修改listView的框架,所以触摸只被传输到恰好在listViews框架内的第一个UITextField。制作:[listView setFrame:CGRectMake(listView.frame.origin.x, listView.frame.origin.y, 320, verticalOffset + 40)];做到了!谢谢老哥!
标签: iphone ios uitextfield interaction