UITableView 中的 UITextField:设置表格的第一响应者视图,但我们不知道它的类型(单元格/页眉/页脚)
Posted
技术标签:
【中文标题】UITableView 中的 UITextField:设置表格的第一响应者视图,但我们不知道它的类型(单元格/页眉/页脚)【英文标题】:UITextField in UITableView: setting the first responder view of the table but we don't know its type (cell/header/footer) 【发布时间】:2013-07-31 19:57:30 【问题描述】:我在 UITableViewCell 中有一个 UITextField,我想检测用户何时开始在 UITextField 中输入内容。所以我设置了 UITextFields 委托,但是当该代码运行时,我收到警告“设置表的第一响应者视图但我们不知道它的类型(单元格/页眉/页脚)”并且 UITextField 委托方法不会被调用.如何正确调用 UITextField 方法?
-(void)tableView:(id)view willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
if ((indexPath.section == 0) && (indexPath.row == 3))
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(friendCellTapped)];
[tap setNumberOfTapsRequired:1];
[cell addGestureRecognizer:tap];
else if ((indexPath.section == 0) && (indexPath.row == 4))
NSLog(@"im called");
UITextField *tagBox = [[UITextField alloc] initWithFrame:CGRectMake(50, 6, 225, 25)];
[tagBox setBorderStyle:UITextBorderStyleRoundedRect];
[tagBox setReturnKeyType:UIReturnKeyDone];
tagBox.delegate = self;
[cell addSubview:tagBox];
else
%orig;
【问题讨论】:
显示如何在单元格上配置文本视图的代码。 能否添加整个方法,通常您看到的错误是由于视图未正确添加到单元格引起的。您是否有其他一些视图被添加为表格视图的直接子视图? 是的,我添加了它。 UITextField 是唯一添加到该单元格的子视图 您是否在单元格之外添加任何内容,直接添加到表格视图中? 【参考方案1】:我之前通过在我的UIViewController
类上创建一个UITextField
变量并将其设置为tableView:cellForRowAtIndexPath
中的UITableViewCell 的文本字段来完成此操作。然后我在viewDidAppear:
中设置我的UITextField
变量的委托。
类似这样的:
-(void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
self.theTextField.delegate = self;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//load custom cell
self.theTextField = myCustomCell.cellTextField;
return myCustomCell;
然后你的 UITextFieldDelegate 方法应该被调用。
【讨论】:
所以我必须创建一个自定义的 uitableviewcell?没有那个就没有办法了吗? 这是我所知道的在 UITableViewCell 中拥有 UITextField 的唯一方法 好吧,我现在在 UITableView 中有一个 UITextField,只需将其作为子视图添加到单元格中,它就不会调用委托方法 哦,好吧,你添加为子视图。是的,我会推荐一个自定义的 UITableViewCell。对我来说效果很好。 嗯,这是我正在做的越狱调整,所以我必须使用应用程序使用的当前单元格:P以上是关于UITableView 中的 UITextField:设置表格的第一响应者视图,但我们不知道它的类型(单元格/页眉/页脚)的主要内容,如果未能解决你的问题,请参考以下文章
水平 UITableView 中的垂直 UITableView
在 UITableView 中的 UINib 中重新加载 UITableView
尝试在用户向 iOS 中的 UITableView 添加行时动态增加 UITableView 的高度