如何使用uistepper增加或减少文本字段值?

时间:2013-06-15 06:04:23

标签: ios objective-c uitextfield uistepper

我目前有一个 UITextField ,它有一些值,除此之外我还有一个 UIStepper 。 我想知道如何使用 UIStepper 来增加/减少文本字段值。

CODE

UIStepper

的值更改操作

第一次我试过这个

- (IBAction)changedX:(UIStepper*)sender 
{
double value = [sender value];
self.XStepper.value=[self.XCoordinate.text doubleValue];
self.XCoordinate.text=[NSString stringWithFormat:@"%g",value];
NSLog(@"%f",value);
}

然后我改为:

if ([sender value]==1) {

   double temp= [self.XCoordinate.text doubleValue];
    temp=temp+1;
       self.XCoordinate.text=[NSString stringWithFormat:@"%g",temp];

}

else
{
    double temp= [self.XCoordinate.text doubleValue];
    temp=temp-1;
    self.XCoordinate.text=[NSString stringWithFormat:@"%g",temp];

}

我不明白如何获取当前 UITextField 值并在 UIStepper 中更新它,以便相应地递增/递减当前值。

由于

4 个答案:

答案 0 :(得分:0)

试试这段代码:

- (void)viewDidLoad;
    {

        [self.stepper setValue:10];
      // steppr get valye from textfiled

    }

  - (IBAction)stepperChanged:(UIStepper *)sender
    {

             NSUInteger value = sender.value;
             NSLog(@"%d",value);
             NSLog(@"%@",self.XCoordinate.text);

            self.XCoordinate.text = [@(value) stringValue];

            [self.stepper setValue:value];

    }
 -(void)textFieldDidEndEditing:(UITextField *)textField;
{

 [self.stepper setValue: self.XCoordinate.text.doubleValue];

}

希望对你有所帮助

答案 1 :(得分:0)

你不应该在这种方法中这样做。根据我的理解,您希望能够从UITextfield更改UIStepper中的文字,如果UITextfield中的文字发生更改,则您希望更新步进器。

您应该使用Value Changed的{​​{1}}事件来更新文本字段,但是当您想要从文本字段更新实际的步进器时,您应该有另一种方法。

UIStepper

答案 2 :(得分:0)

将stepper.value设置为viewDidAppear / viewDidLoad中的默认值

答案 3 :(得分:0)

这个替代方案对我有用。每次编辑文本字段时,都会设置stepper.value。这样,当我点击步进器时,它可以使用它已有的值,文本字段值或它自己的值。

- (IBAction)didTapStepper:(UIStepper *)sender {
    self.textFieldName.text = [NSString stringWithFormat:@"%ld", (long)sender.value];
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if(textField == self.textFieldName){
        self.stepperName.value = [[NSString stringWithFormat:@"%@%@", self.textFieldName.text, string] doubleValue];
    }
    return YES;
}

编辑:不要忘记添加代表 UITextFieldDelegate , 并指定自己。

self.textFieldName.delegate = self;