在UITableView中的UITextField代理

4
大家好,我正在开发一个应用程序,允许用户快速在UITableView中输入数字。
我已经建立了框架,但是我遇到了一些问题,无法将视图连接起来,使键盘加载并使单元格中的文本可编辑。
我记得在开发代码中有一个iOS示例(大约一年前,所以不会受到NDA的限制),您可以在UITableView的上下文中添加项目并对其进行编辑,而无需进入详细的子视图。
只需要提示如何连接委托或如何构造代码即可。
2个回答

13

我有一段代码,在其中为UITableView创建自定义单元格,这些单元格上有UITextFieldUITextView控件。在UITableViewController的代码中,我这样做:

接口

@interface MyTableViewController: 
    UITableViewController <UITextFieldDelegate, UITextViewDelegate> {
....
}

实现

-(UITableViewCell *) tableView:(UItableView *) tableView 
    cellForRowAtIndexPath: (NSIndexPath *) indexPath {

    ....

    UITableViewCell * cell = ....
    cell.myTextField.delegate = self;
    cell.myTextField.tag = 1; //This should be unique.
    return cell;
}

-(void) textFieldDidEndEditing: (UITextField * ) textField {
    // Decide which text field based on it's tag and save data to the model.
}

-(void) textViewDidEndEditing: (UITextView * ) textView {
    // Decide which text view based on it's tag and save data to the model.
}

你是一个救星... ;) - Sanket Utekar
小伙伴们,只是提醒一下,像这样通过控制器来路由所有内容虽然是简单的方法,但对于除了简单应用外的其他应用而言并不是一个好主意。你还应该考虑一些东西,比如自定义UITableViewCells和MVVM架构。 - drekka

0

您可以将UITextField或UITextView添加到任何单元格中。如果您有自定义单元格,请将它们设置为其文本视图的委托,或者如果您在表视图委托中组合单元格,则将其设置为文本字段的委托。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接