1

我正在一个应用程序中工作,我有一个包含文本字段和标签的表格视图。现在我想要的是当我在具有分数的文本字段中输入文本时,它应该计算一些东西并在该单元格的表格视图标签中给我结果百分比。下面是我如何在 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;
 }

对于 caqlculation 我使用以下代码

-(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];  
   }

如何解决这个问题?

4

1 回答 1

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;
}
于 2012-06-08T23:32:14.603 回答