0

我目前有一个UITextField,其中有一些价值,而且我还有一个UIStepper。我想知道如何使用UIStepper来增加/减少文本字段的值。

代码

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

4 回答 4

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

编辑:不要忘记添加 Delegate UITextFieldDelegate,并将自己分配给它。

self.textFieldName.delegate = self;
于 2015-03-24T11:36:27.133 回答
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];

}

希望对你有帮助

于 2013-06-15T06:15:42.807 回答
0

你不应该在这种方法中这样做。据我了解,您希望能够更改UITextfieldfrom the中的文本UIStepper,并且如果UITextfield更改中的文本,您希望更新 Stepper。

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

- (void)updateStepper:(UIStepper *)stepper fromTextField:(UITextField *)textfield {
    NSInteger value = [textfield.text integerValue];
    [stepper setValue:value];
}
于 2013-06-15T06:16:47.297 回答
0

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

于 2013-08-08T07:38:19.220 回答