我正在tableview应用程序中创建一个“收藏页面”菜单,用户可以在其中保存自己喜欢的网页,然后通过菜单更轻松地导航到它们。
为了便于记住哪个链接是哪个,我想让用户点击一个显示“编辑”的按钮,以某种方式选择他们想要编辑名称的单元格,然后键入新名称并拥有单元格将自己重命名为用户输入的内容。我目前正在使用内置设置应用程序来保存链接数据。
我不需要知道我刚问过的所有方面。我只是想知道用户是否可以编辑tableview的单元格文本,以及我将使用哪些方法。
我已经看到其他问题涉及类似的基础,但通常来自更具规划性的基础。
答案 0 :(得分:7)
用户无法直接编辑tableview的单元格文本。 (从技术上讲,它将是cell.textLabel.text)。但是,如果它们进入“编辑”模式,您可以轻松地在单元格(或模态视图)中显示UITextField,该UITextField预先填充当前值,让它们编辑它,保存然后更新cell.textLabel。文本重视自己。
答案 1 :(得分:6)
您的UITableView
单元格在这里创建,通常是
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
(UITableView
的代表之一)。
因此,如果您继承UITableViewCell
并公开text
属性,则可以执行所需操作,包括在Cell中保留UITextField
实例。确保像往常一样使用出队的东西。
然后,当用户触摸UITableViewCell
时,您可以将焦点UITextField
:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.thatTextFieldIMentioned becomeFirstResponder];
}
如果您将UITableViewCell
子类设为UITextFieldDelegate
并使其成为文本字段的委托,则可以轻松处理这些令人烦恼的难以记忆的方法:
- (void)textFieldDidEndEditing:(UITextField *)textField {
NSLog(@"yeah inform someone of my change %@", textField.text);
}
- (BOOL)textFieldShouldClear:(UITextField *)textField {
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
答案 2 :(得分:-1)
所以,我认为最好的方法是使用tabelview cell editstyle。 您可以使用tableview委托set cell editstyle。用户编辑单元格时,您可以执行所需操作。 在以下位置设置单元格样式:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
当用户点击编辑按钮时执行以下操作:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath