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

Ios 如何使用uistepper增加或减少文本字段值?,ios,objective-c,uitextfield,uistepper,Ios,Objective C,Uitextfield,Uistepper,我目前有一个UITextField,其中有一些值,此外还有一个UIStepper。 我想知道如何使用UIStepper来递增/递减textfield值 代码: UIStepper的值更改操作 我试过这个 - (IBAction)changedX:(UIStepper*)sender { double value = [sender value]; self.XStepper.value=[self.XCoordinate.text doubleValue]; self.XCoordinate.

我目前有一个UITextField,其中有一些值,此外还有一个UIStepper。 我想知道如何使用UIStepper来递增/递减textfield值

代码

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中更新它,以便相应地增加/减少当前值

谢谢

请尝试以下代码:

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

}

希望它能帮助你

你不应该用这种方法。据我所知,您希望能够从
UIStepper
更改
UITextfield
中的文本,并且,如果
UITextfield
中的文本更改,您还希望更新步进器

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

- (void)updateStepper:(UIStepper *)stepper fromTextField:(UITextField *)textfield {
    NSInteger value = [textfield.text integerValue];
    [stepper setValue:value];
}

将stepper.value设置为ViewDidDisplay/viewDidLoad中的默认值这一备选方案对我很有效。每次编辑文本字段时,都会设置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;

我使用了您的代码,但它从0开始,然后从0开始递增。要从数字形成字符串,如果您使用文字将更加优雅
[@(value)stringValue]
@kirtimali文本字段更改为1并从中递增,我已经尝试过了,它不接受当前值,它从1开始并从中递增,我想从文本字段中获取值并使用stepper更新该值。@kirtimali例如,我的UITextField中已经有一个值212,现在,当我使用递增/递减步进器时,它必须更改为211或210,这取决于我是递增还是递减。它不应该从0开始递增到1。您可以设置viewdidload或textfieldendediting[self.stepper setValue:yoyrtxt double value];我也提出了类似的建议。值的差异可以通过步进器和滑块来更改,这里是textfield和stepper。那么您是说从UIStepper的值更改方法调用上述方法吗?不。当从textfield更改值时,您应该调用此方法。例如,如果从键盘键入新值。