2011-06-20 168 views
2

我有一个包含tableview的视图(我把这个视图称为EquationView,它的控制器是EquationViewController)。表格视图单元格是具有标签和文本字段的自定义单元格,可以接受地表示变量及其值。在文本字段中开始编辑时,我已经能够使我的自定义键盘变为可见状态。在自定义的uitableview单元格中输入的自定义键盘

但是,我一直无法获得正确的单元格中的apear击键,做到这一事实,我一直未能弄清楚如何发送带有正在编辑的文本字段的单元格的indexPath自定义键盘控制器类。我在我的自定义键盘控制器类中包含了我的EquationViewController.h文件,并且已经能够通过手动将indexPath设置为指定行来更改tableview的textField中的文本。下面是键盘类定义:

#import <UIKit/UIKit.h> 
#import "EquationViewController.h" 


@interface CustomNumberPadViewController : UIViewController { 
    EquationViewController *equationViewController; 
} 
@property (nonatomic, retain) EquationViewController *equationViewController; 

-(IBAction)buttonPressed:(id)sender; 

@end 

我的操作方法是这样的(到目前为止):

-(IBAction)buttonPressed:(id)sender{ 

    VariableCell *cell = (VariableCell *)[equationDetailViewController.myTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 

    cell.variableValue.text = @"test"; 

} 

这得到了“测试”一词出现在哪个行我的索引路径设置。

所以我想知道的是,有没有办法将我的自定义键盘控制器类中的textField正在编辑的单元格的indexPath传递给操作方法?

回答

1

为什么不将您的UIViewController设置为您的UITextFields的委托并捕获textFieldDidBegin:delegate方法?

+0

你的权利,那就是要走的路。我忘记将代表连接到IB。我最终在我的EquationViewController中声明了一个变量(selectedTextfieldRow)。然后,我根据它们在tableview中的行将标签分配给每个字段。然后在textFieldDidBegin中,我将标签号赋给selectedTextfieldRow变量。然后在键盘控制器的操作方法中,我检索selectedTextfieldRow值,并将其用作调用所选单元格的索引路径的行。它似乎有点圆满,但它的工作。谢谢你的帮助! – Jbryson

+0

你也可以将你的UITextField直接存储在你的伊娃里,而不是使用标签。如果你需要indexPath,你可以通过它的superviews来查找单元格(例如,如果textField位于UITableViewCell的contentView中,则为textField.superview.superview),并使用UITableView的'indexPathForCell'来获取indexPath。但取决于您的需求,取决于您 – AliSoftware