将文本字段中的值获取到 Tableview 中的标签
Posted
技术标签:
【中文标题】将文本字段中的值获取到 Tableview 中的标签【英文标题】:Getting the value from textfield to Label in Tableview 【发布时间】:2012-06-07 07:10:38 【问题描述】:我正在一个应用程序中工作,我有一个包含文本字段和标签的表格视图。现在我想要的是当我在具有分数的文本字段中输入文本时,它应该计算一些东西并在该单元格的表格视图标签中给我结果百分比。 下面是我在 cellForRowAtIndexpath 中创建 tetfield 和标签的方法。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
lblpercent = [[UILabel alloc]initWithFrame:CGRectMake(395, 5, 270, 30)];
UITextField *txtscore = [[UITextField alloc] initWithFrame: CGRectMake(306,5,100,30)];
txtscore.delegate = self;
txtscore.keyboardType = UIKeyboardTypeNumberPad;
[txtscore addTarget:self action:@selector(textFieldDone:) forControlEvents:UIControlEventEditingDidEnd];
lblpercent.text = per;
对于计算,我使用以下代码
-(void) textFieldDone: (id) sender
UITextField *field = sender;
NSLog(@"%d",i);
NSString *total = field.text;
int tot = [total intValue];
NSLog(@"The text is %d", tot);
per = [[NSString alloc] init];
if (tot == 90)
percent=90;
per = [NSString stringWithFormat:@"%d",percent];
如何解决这个问题?
【问题讨论】:
解决什么?我们首先需要一个问题才能解决它...... 【参考方案1】:我有一个好主意,如果不是因为你的问题,我肯定不会尝试,所以谢谢你;)
如果除了设置标签之外您不需要文本字段的任何其他委托方法,您可以通过这种方式解决您的问题。
在 UILabel 上创建一个类别
@interface UILabel (CopyTextField) <UITextFieldDelegate>
@end
@implementation UILabel (CopyTextField)
-(void)textFieldDidEndEditing:(UITextField *)textField
// do whatever you want with your textfield's text and set self.text to the value
self.text = textField.text; // here I'm just copying the text as it is
@结束
另一方面,您需要将标签设置为 textField 的委托(导入 UILabel+CopyTextField.h)
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UILabel *lblpercent = [[UILabel alloc]initWithFrame:CGRectMake(395, 5, 270, 30)];
UITextField *txtscore = [[UITextField alloc] initWithFrame:CGRectMake(306,5,100,30)];
txtscore.delegate = lblpercent;
txtscore.keyboardType = UIKeyboardTypeNumberPad;
【讨论】:
非常感谢,我已经尝试了代码,它按照我想要的方式工作,我可以用同样的方式找到成绩吗,因为我需要根据 lblPercent 这是一个标签来查找成绩在同一行。 使用此解决方案,您的文本字段只能有一个委托,如果您需要在更改文本字段的值时更改多个对象,那么您应该引用这些对象(例如属性)并使用您的控制器作为代表。然后在 -(void)textFieldDidEndEditing:(UITextField *)textField 实现中,您需要进行所有您需要的更改。以上是关于将文本字段中的值获取到 Tableview 中的标签的主要内容,如果未能解决你的问题,请参考以下文章
iOS:如何从 tableview 的自定义单元格中的 UITextField 访问值