表格单元格作为文本字段的委托吗?

时间:2011-04-30 11:20:32

标签: iphone objective-c cocoa-touch

遗憾的是,在将iphone应用程序很好地组织到控制器和视图中时,我仍然没有看到它。让我举一个例子来说明:

我正在编写一个注册页面,其中包含一个包含自定义表格单元格列表的表格视图。这些单元格中的一些在其内部具有文本字段,并且当用户触摸其中一个时,键盘从底部向上滑动。键盘的右下角有一个返回键,当用户按下此键时,我希望键盘再次向下滑动。

现在,我在哪里放

- (BOOL) textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

?目前我已经使我的自定义表格单元符合文本字段委托协议并将该方法放在那里,但在视图类中包含类似的东西似乎有点不对劲?另一方面,我在表视图控制器中也找不到它。

1 个答案:

答案 0 :(得分:4)

您可以将表格视图控制器设置为文本字段的委托... 只需删除您将其设置为委托的自定义单元格中的代码,而是在表视图控制器的cellForRowAtIndexPath方法中设置委托,您实际创建并返回单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {              
    static NSString *CellIdentifier = @"CellIdentifier";


    MyCustomCell *myCell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (myCell == nil)
    {

        myCell = [[[MyCustomCell alloc] initWithStyle:UITableViewCellSelectionStyleNone reuseIdentifier:CellIdentifier] autorelease];
        myCell.myTextField.delegate = self;
    }

    //other cell specific code goes here

    return myCell;
}