2012-01-06 74 views
1

我试图实现已经回答的问题提供的建议,但我坚持让它工作,所以寻找一些帮助。如何使tableview单元格“detailLabel”可编辑?

这里是后我想实现:http://stackoverflow.com/a/3067579/589310

我想用就如何做一个“detailLabel“ridale”所提供的解决方案“可编辑为TableView的一部分。我希望它能让我直接编辑一个单元格并输入一个数字。它看起来不像UI那么常见,但是“SmartRecord”就是这样做的,我想模拟它。

这里是给我一个错误的唯一行:

UITextField *tmpView = [self detailLabel:indexPath]; 

我得到这个错误:

实例方法-detailLabel:没有找到(return type defaults to 'id')

我想这是因为自我与原始海报不同。

我直接添加了一个TableView到我现有的控制器。它不是直接在TableViewController:

@interface EditViewController : UIViewController 
{ 
    IBOutlet UITableView   *tableSettings; 
} 

我可以填写表格,并与之交互,所以我知道它的工作原理(在一定程度上是这样)。

我试图改变自我,以我的表控制或者直接在单元格:

UITextField *tmpView = [tableSettings detailLabel:indexPath];

我无法找到任何响应“detailLabel”的方法。

我也不确定建议的解决方案是完整的还是使用更多的代码未显示。

这是唯一的错误,我得到的,所以我希望,一旦我解决这个问题,它会工作;-)

+0

,我不认为你是正确引用'self'。该文件是“UITableViewCell”的一个子类吗?否则,您将无法访问其方法。 – esqew 2012-01-06 01:55:47

回答

0

-(UITextField*)detailLabel:(NSIndexPath*)indexPath不存在UITableView或由苹果公司提供的任何其他类。

框架位置仅用于示例。修改它以代替你的detailLabel。

你必须写你自己的方法,该方法返回一个UITextField,东西如下

-(UITextField*)detailLabel:(NSIndexPath*)indexPath 
{ 
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; 
    textField.delegate = self; 
    //assuming myList is array of NSString 
    NSString* str = [myList objectAtIndex:indexPath.row]; 
    textField.text = str; 
    return [textField autorelease]; 
} 
+0

谢谢,很高兴知道为什么我找不到方法;-) – user589310 2012-01-06 18:42:50