1

Textfield と Label を含む tableview があるアプリで作業しています。今私が欲しいのは、スコアを持つテキストフィールドにテキストを入力すると、何かを計算し、そのセルのテーブルビューラベルに結果のパーセンテージを与えることです。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];  
   }

どうすればこれを解決できますか?

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 に答える